Asp.net-error-handling
ASP.NET-エラー処理
ASP.NETのエラー処理には3つの側面があります。
- トレース-ページレベルまたはアプリケーションレベルでプログラムの実行をトレースします。
- エラー処理-ページレベルまたはアプリケーションレベルで標準エラーまたはカスタムエラーを処理します。
- デバッグ-プログラムをステップ実行し、ブレークポイントを設定してコードを分析します
この章では、トレースとエラー処理について説明し、この章ではデバッグについて説明します。
概念を理解するには、次のサンプルアプリケーションを作成します。 ラベルコントロール、ドロップダウンリスト、およびリンクがあります。 ドロップダウンリストは有名な引用符の配列リストをロードし、選択した引用符は下のラベルに表示されます。 また、存在しないリンクを指すハイパーリンクがあります。
コードビハインドファイル:
トレース
ページレベルのトレースを有効にするには、次のようにPageディレクティブを変更し、Trace属性を追加する必要があります。
ファイルを実行すると、トレース情報が取得されます。
上部に次の情報が表示されます。
- セッションID
- 状態コード
- リクエストの時間
- リクエストの種類
- 要求と応答のエンコード
ページがリクエストされるたびにサーバーから送信されたステータスコードには、エラーの名前と時間が表示されます。 次の表に、一般的なHTTPステータスコードを示します。
数
説明
情報(100-199)
100
持続する
101
スイッチングプロトコル
成功(200-299)
200
OK
204
コンテンツなし
リダイレクト(300-399)
301
永久に移動しました
305
プロキシを使う
307
一時的なリダイレクト
クライアントエラー(400-499)
400
要求の形式が正しくありません
402
支払いが必要
404
見つかりません
408
リクエストタイムアウト
417
期待に失敗しました
サーバーエラー(500-599)
500
内部サーバーエラー
503
サービスは利用できません
505
HTTPバージョンはサポートされていません
トップレベルの情報の下には、ページのライフサイクルの詳細を提供するトレースログがあります。 ページが初期化されてからの経過時間を秒単位で提供します。
次のセクションはコントロールツリーで、ページ上のすべてのコントロールを階層的にリストします。
セッションおよびアプリケーション状態の概要、Cookie、およびヘッダーコレクションの最後に、すべてのサーバー変数のリストが続きます。
Traceオブジェクトを使用すると、トレース出力にカスタム情報を追加できます。 これを実現するには、WriteメソッドとWarnメソッドの2つのメソッドがあります。
Page_Loadイベントハンドラーを変更して、Writeメソッドを確認します。
実行して効果を観察します。
Warnメソッドを確認するには、選択したインデックス変更イベントハンドラーにエラーコードを強制的に入力します。
Try-CatchはC#プログラミング構造です。 tryブロックは、エラーを生成する可能性のあるコードまたは保持しないコードを保持し、catchブロックはエラーをキャッチします。 プログラムが実行されると、トレースログに警告が送信されます。
アプリケーションレベルのトレースは、Webサイトのすべてのページに適用されます。 web.configファイルに次のコード行を追加することで実装されます。
エラー処理
ASP.NETはすべての実行時エラーを検出できますが、まだいくつかの微妙なエラーが残っている可能性があります。 トレースによるエラーの観察は、ユーザーではなく開発者を対象としています。
したがって、このような発生をインターセプトするために、アプリケーションのweb.configファイルにエラー処理設定を追加できます。 アプリケーション全体のエラー処理です。 たとえば、web.configファイルに次の行を追加できます。
<customErrors>セクションには、可能な属性があります。
- モード:カスタムエラーページを有効または無効にします。 次の3つの値があります。
- オン:カスタムページを表示します。
- オフ:ASP.NETエラーページを表示します(イエローページ)
- remoteOnly :クライアントにカスタムエラーを表示し、ASP.NETエラーをローカルに表示します。
- defaultRedirect :未処理のエラーが発生した場合に表示されるページのURLが含まれます。
さまざまなタイプのエラーにさまざまなカスタムエラーページを配置するには、エラーのステータスコードに基づいてさまざまなエラーページを指定する<error>サブタグを使用します。
ページレベルのエラー処理を実装するには、Pageディレクティブを変更します。
ASP.NETデバッグはそれ自体重要なテーマであるため、次の章で個別に説明します。