我们使用ELMAH作为我们的ASP.NET网络应用程序,我对我们得到的一些例外情况感到难过。其中一些是:
我根本不知道它们为什么会出现,但最终用户显然看不到它们,所以我想忽略它们并压制电子邮件。如果我这样做,我想确保System.FormatException仅使用Invalid length for a Base-64 char array.
作为其消息文本,而不是其他消息。如果确实如此,我忽略了它,我可能会错过在System.FormatException下抛出的其他异常。如果是这种情况,我必须检查消息文本。这不是问题,但我真的不喜欢在我的应用程序中硬编码字符串。
更新
我试过这段代码:
try
{
throw new System.FormatException();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
Console.Read();
其消息文本为:
One of the identified items was in an invalid format.
这表明回答者是正确的,应该根据异常和消息文本忽略异常。
答案 0 :(得分:0)
异常的Message属性对于帮助您诊断代码中的错误或用户配置问题没有用。这也是你不知道它们为什么会发生的原因。您必须在电子邮件中添加更多信息,特别是异常的StackTrace属性对于帮助您确切了解异常发生的位置至关重要。如果一个异常有一个InnerException,那么你总是需要知道那个异常,因为它通常是触发另一个异常的核心原因。
只需使用异常的ToString()方法生成更好的诊断信息即可放入电子邮件中。