例外の内部例外をキャッチして、それを SQL データベース テーブルに記録しようとしています。私が持っているコードは問題なく例外をキャッチしてSQLテーブルに記録しますが、例外のメッセージに「詳細については内部例外を参照してください」と表示されていても、内部例外レコードを取得することはありません。内部例外のキャッチに関する限り、誰かがここで正しい方向に私を向けることができますか? これは、例外をキャッチしているが、内部例外に対して機能していないコードです。
try
{
context.CalculateFreight(xmldoc);
}
catch (Exception ex)
{
if (ex.Message.ToString().Length > 2048)
{
ApplicationError myError = new ApplicationError();
myError.ErrorNumber = 1;
myError.ErrorSeverity = 1;
myError.ErrorState = 1;
myError.ErrorLine = 29;
myError.ErrorProcedure = "Web Service - ProcessShipping()";
myError.ErrorMessage = ex.Message.ToString().Substring(0, 2047);
myError.ErrorDateTime = DateTime.Now;
context.ApplicationErrors.AddObject(myError);
context.SaveChanges();
}
else
{
ApplicationError myError = new ApplicationError();
myError.ErrorNumber = 1;
myError.ErrorSeverity = 1;
myError.ErrorState = 1;
myError.ErrorLine = 29;
myError.ErrorProcedure = "Web Service - ProcessShipping()";
myError.ErrorMessage = ex.Message.ToString();
myError.ErrorDateTime = DateTime.Now;
context.ApplicationErrors.AddObject(myError);
context.SaveChanges();
}
if (ex.InnerException.Message.ToString().Length > 0)
{
if (ex.InnerException.Message.ToString().Length > 2048)
{
ApplicationError myInnerException = new ApplicationError();
myInnerException.ErrorNumber = 1;
myInnerException.ErrorSeverity = 1;
myInnerException.ErrorState = 1;
myInnerException.ErrorLine = 29;
myInnerException.ErrorProcedure = "Web Service - INNER EXCEPTION";
myInnerException.ErrorMessage = ex.InnerException.Message.ToString().Substring(0, 2047);
myInnerException.ErrorDateTime = DateTime.Now;
context.ApplicationErrors.AddObject(myInnerException);
context.SaveChanges();
}
else
{
ApplicationError myInnerException = new ApplicationError();
myInnerException.ErrorNumber = 1;
myInnerException.ErrorSeverity = 1;
myInnerException.ErrorState = 1;
myInnerException.ErrorLine = 29;
myInnerException.ErrorProcedure = "Web Service - INNER EXCEPTION";
myInnerException.ErrorMessage = ex.InnerException.Message.ToString();
myInnerException.ErrorDateTime = DateTime.Now;
context.ApplicationErrors.AddObject(myInnerException);
context.SaveChanges();
}
}
}