方法 : ページ レベルのエラーを処理する
更新 : 2007 年 11 月
可能な限り、コード内の Try/Catch ブロックで発生するエラーには対処した方がよいでしょう。問題は発生した場所で修正する方が簡単なためです。ユーザーが問題解決を支援できる場合、ユーザーが対処する状況を理解できるように、同じページに戻る必要があります。
ページ レベルのハンドラはそのページに戻りますが、コントロールのインスタンスは作成されないため、ページには何もありません。ユーザーに情報を提供するために、ページに具体的な説明を記載してください。
ページ レベルのエラー ハンドラを使用して、未処理のエラーをログに記録したり、役に立つ情報が記載されているページにユーザーを誘導したりします。
ASP.NET Web ページの Error イベントのハンドラのコード例を次に示します。このハンドラは、ページの Try/Catch ブロック内で処理されていないすべての例外をキャッチします。
エラーを処理した後、Server オブジェクト (HttpServerUtility クラス) の ClearError メソッドを呼び出して、エラーをクリアする必要があります。
使用例
このハンドラは、特定の種類の例外をフィルタ処理します。ArgumentOutOfRangeException 例外の場合、ハンドラは何らかのテキストをページに記載し、そのページに戻るリンクを表示して、エラーをログに記録します。そして、システム管理者に通知します。InvalidOperationException 例外の場合、例外は汎用エラー ページに転送されるだけです。その他の例外の場合、ハンドラでは何も処理が実行されません。Web.config ファイルに指定した汎用ページに自動的にリダイレクトされます。独自のコードで、使用しているアプリケーションに重要な例外のフィルタ処理を実行します。
次の例は、「エラー ハンドラの完全なコード例」の完全なコード例の一部です。
セキュリティ
詳細なエラー メッセージをローカル ユーザーだけが表示できるよう制限する場合は、<customErrors> 要素 を使用します。
悪意を持ったユーザーがアプリケーションに問題を引き起こす可能性があるエラー情報を表示しないように注意してください。詳細については、「方法 : 安全なエラー メッセージを表示する」を参照してください。