2009-04-02 8 views
8

catchステートメントで発生する例外を処理する最適な方法は何ですか?現在、レスポンスオブジェクトのwriteメソッドに例外メッセージを書き出しています。しかし、私は、ユーザーが何かが間違っているという一般的なエラーメッセージだけを得る解決策が必要だが、エラーの詳細な説明を得なければならない。私はC#で例外処理のために採用されているさまざまなプラクティスを知りたいと思います。C#を使用してWebプロジェクトで例外を処理する方法

答えて

7

ウェブプロジェクトでは、ブラウザにプッシュダウンされる例外を防ぐため、ヘルスモニタリングとカスタムエラーページの使用を有効にすることができます。 catch文の中で例外が発生する可能性がある場合は、別のtry catchをネストして、優雅に落ちるようにしてください。 Global.asaxの中

また、あなたがASP.NETでの未処理の例外

アンドリュー

ヘルスモニタリングのために呼び出されるのApplication_Errorイベントを購読することができますあなたのために良いhttp://www.4guysfromrolla.com/articles/031407-1.aspx

+0

確かに行く方法+1 –

1

イベントログへの書き込みもオプションの1つです。

2

私はデータベースに詳細なエラーを記録し、ユーザーを一般的なエラーページにリダイレクトします。

4

これを修正したい例外メッセージをユーザーに直接書き込むと、セキュリティ上の重大なリスクが発生する可能性があります。すでにわかっているように、例外メッセージには悪意のあるユーザーがサイトにアクセスするのに役立つ多くの情報が含まれている場合があります。

ELMAH(エラーログモジュールとハンドラ)を見てください。これは、Webアプリケーションに詳細なエラーのログを記録する簡単な方法です。

1

REA_ANDREWによれば、カスタムエラーページと共にヘルスモニタリングを使用しています。

彼が明示的に言っていないことの1つは、try/catchブロックをすべてに配置するプログラミングのスタイルを避けるべきだということです。正常性監視では処理されない例外が記録され、カスタムエラーページにはユーザーにエラーに関する情報(何かがあれば)が表示されます。しかし、これは、でない場合にのみ起こります。は例外をキャッチするので、それらをそのまま放置して伝播させてください。

関連する問題