0

すべてのフォーム エラーをイベント ログにスローします。これを実現するために、エラー テキストをイベント ログに送信するコードを Application_Error ハンドラーに追加しました。ページのライフサイクルの通常の流れを中断することなく、例外をスローして Application_Handler でキャッチする方法を知りたいです。

私は単純に ApplicationException を投げてみました:

throw new ApplicationException(String.Format("Http Request failed. {0}", userStatusErrorMessage));

エラーの詳細がイベントログに追加されたという意味では機能しましたが、例外をスローしたページはエラーをスローした後に何も表示されませんでした。空白でした。

何か案は?とても有難い。ありがとう、そして楽しい週末を!

4

2 に答える 2

3

ページが処理後に続行できる例外である場合は、グローバルから遠ざけるのが最善です。ログに記録したい場合は、キャッチした場所にログを記録します (サードパーティのログ フレームワークを使用していない場合でも、静的メソッドを使用できるため、ハンドラーに 1 行追加するだけで済みます)。

キャッチできないものについてはglobal.asaxを残し、エラーページを送信します(「私はめちゃくちゃになりました。修正を試みます」の場合は500、「あなたが混乱したため、何もできません」の場合は4xxの範囲内の何か)。これで対処してください」 - それが彼らのせいであることがわからない場合、それはあなたのせいです; もしそれが本当に彼らのせいであり、あなたがそれを知らないのなら、それは知らないというあなたのせいです.

于 2012-08-31T21:20:02.523 に答える
2

global.asax で例外を処理すると、「ページ ライフサイクルの通常の流れを中断せずに」続行できないことを意味します。このアプローチは、例外をログに記録してから、構成されたカスタム エラー ページにリダイレクトする場合に適しています。

例外をログに記録するだけで、何も起こらなかったかのように振る舞う場合は、例外をキャッチして、そこでログ記録メソッドを呼び出す必要があります。しかし、例外がユーザーに表示されるはずなので、私はそれに対して提案します。

于 2012-08-31T21:21:37.583 に答える