0

私たちは ASP.NET Web アプリに ELMAH を使用していますが、いくつかの例外が発生して困惑しています。これらのいくつかは次のとおりです。

  • System.FormatException: Base-64 char 配列の長さが無効です。
  • System.Web.HttpException: データを検証できません。
  • System.Security.Cryptography.CryptographicException: パディングが無効であり、削除できません。

なぜ発生するのかはまったくわかりませんが、エンドユーザーは明らかにそれらを見ていないため、それらを無視して電子メールを抑制したいと考えています. これを行う場合、 System.FormatExceptionInvalid 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 に答える