0

我们将 ELMAH 用于我们的 ASP.NET Web 应用程序,我对我们遇到的一些异常感到困惑。其中一些是:

  • System.FormatException:Base-64 字符数组的长度无效。
  • System.Web.HttpException:无法验证数据。
  • System.Security.Cryptography.CryptographicException:填充无效且无法删除。

我根本不知道它们为什么会发生,但最终用户显然看不到它们,所以我想忽略它们并禁止发送电子邮件。如果我这样做,我想确保 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.

这表明回答者是正确的,并且应该根据异常和消息文本忽略异常。

4

1 回答 1

0

异常的 Message 属性无法帮助您诊断代码中的错误或用户配置的问题。这也是为什么你不知道它们为什么会发生的原因。您必须在电子邮件中添加更多信息,特别是异常的 StackTrace 属性对于帮助您准确找出异常发生的位置至关重要。如果一个异常有一个 InnerException 那么你总是需要知道那个,因为它通常是另一个异常被触发的核心原因。

只需使用异常的 ToString() 方法来生成更好的诊断信息以放入您的电子邮件中。

于 2012-04-05T15:25:53.457 回答