2

具体的には、ASP.NET および WCF(IErrorHandler) でのグローバル例外ハンドラー (Application_Error/Page_Error) の使用に関して、基本的な疑問はほとんどありません。

上記のいずれかを使用すると、すべての例外がそれらを通過し、自分の意志に従ってそれらをログに記録してマッピングできますか? また、不要な try catch ブロックをすべて削除し、必要に応じて try finally に置き換えることを促進しますか?

「不要」とは、つまり、最終的に冗長になるブロックをキャッチすることです。たとえば、すべての DB 例外をキャッチし、wcf で特定の FaultException に変換し、ProvideFault メソッドで同じ変換を行っている場合、クライアントで FaultException を作成することだけを行っていたため、これらの catch ブロックを削除すべきではありません。友好的な詳細?

4

1 に答える 1

1

はい、エラーをグローバルにログに記録できますが、ページでエラー処理を行う必要がなくなるわけではありません (補足として、StackOverflowException などの一部のエラーはキャッチされません)。グローバル レベルでログに記録される唯一のエラーは予期しないものであり、try/catch の使用を避ける方法ではありません。理由の簡単な例を次に示します。

ユーザーに番号の入力を求めます。入力を int として解析します。彼らは文字列を入力しました。このエラーをグローバル レベルで記録しますか? いいえ、それをキャッチして表示し、ユーザーにエラーを表示する必要があります。

また、NuGet で Elmah を検索して、それがうまくいくかどうかを確認してください。5分でエラー処理。

于 2013-09-29T05:12:11.320 に答える