ホームページ >バックエンド開発 >C#.Net チュートリアル >.netのエラー処理メカニズムとは何ですか
.NET のエラー処理メカニズムは次のとおりです: 1. [Page_Error] イベント; 2. ErrorPage 属性; 3. [Application_Error] イベント; 4. [930ac17b94b9e98609d20e97126e0d94] 構成アイテム。上記の 4 つの処理メカニズムは、主に例外処理とページ レベルのエラー処理に使用されます。
.NET は 4 つのエラー処理メカニズムを提供します:
1.Page_Error イベント
Page_Error イベントは、ページ レベルで発生したエラーをキャプチャする方法を提供します。単純にエラー メッセージを表示したり (以下のサンプル コードを参照)、イベントを記録したり、その他のアクションを実行したりできます。
private void Page_Load(object sender, System.EventArgs e) { // Put user code to initialize the page here throw new Exception("Page Error!"); } protected void Page_Error(object sender, EventArgs e) { Exception objErr = Server.GetLastError().GetBaseException(); Response.Write("Error:" + objErr.Message); Server.ClearError(); //同样要注意这句代码的使用 }
注: この例はブラウザに詳細なエラー メッセージを表示しますが、これは説明のみを目的としています。アプリケーションのエンド ユーザーに詳細情報を表示する場合は注意してください。エラーが発生したというメッセージをユーザーに表示し、特定のエラーの詳細をログに記録する方が適切です。
2. ErrorPage プロパティ
ページ上でほぼいつでも ErrorPage プロパティを設定して、ページでエラーが発生したときにどのページにリダイレクトするかを決定できます。 。 ErrorPage 属性を機能させるには、930ac17b94b9e98609d20e97126e0d94 構成アイテムの mode 属性を「On」に設定する必要があります。
this.ErrorPage = "~/ErrorHandling/PageError.html";
Page_Error と ErrorPage の両方が存在する場合、例外がスローされたときのページの実行順序はどうなりますか?ページは最初に Page_Error イベント処理関数を実行します。例外情報をクリアするために Page_Error() イベントで関数 Server.ClearError() が呼び出された場合、ErrorPage 属性で指定されたページにはジャンプしません。 ()が呼び出されない場合は例外情報が継続しますので、上に投げるとErrorPageで指定したページにジャンプします。これは、Page_Error イベント > ErrorPage 属性という優先順位も証明しています。
3.Application_Error イベント
Page_Error イベントと同様に、Application_Error イベントを使用してアプリケーションで発生したエラーをキャプチャできます。イベントはアプリケーション全体で発生するため、アプリケーション エラー情報をログに記録したり、発生する可能性のある他のアプリケーション レベルのエラーを処理したりできます。次のコードを Global.asax ファイルに追加すれば問題ありません。
protected void Application_Error(object sender, EventArgs e) { Exception ex = Server.GetLastError().GetBaseException(); //实际应用中这里可以将Exception信息记Log或是保存到数据库中 //还可以将错误发邮件给网站维护人员 Response.Write("Error:" + ex.Message); //清除Exception,避免继续传递给上一级处理 //这里上级就是<CustomerErrors>配置节了 Server.ClearError(); }
4.930ac17b94b9e98609d20e97126e0d94 構成項目
構成ファイル web.config の 930ac17b94b9e98609d20e97126e0d94 構成セクションでは、リダイレクト ページをデフォルトのエラーとして指定できます。ページのデフォルト 発生した HTTP エラー コードに基づいて特定のページをリダイレクトするか、指定します。このカスタム ページは、アプリケーションの前のレベルでは検出されなかったエラーが発生した場合に表示されます。
<customErrors mode="On" defaultRedirect="~/ErrorHandling/ApplicationError.html"> <error statusCode="404" redirect="~/ErrorHandling/404.html" /> </customErrors>
同様に、Application_Error と 57eeb7803b8d23e3b64c46876f20d8de が同時に存在する場合、実行順序にも問題があります。 Application_Error イベント> 930ac17b94b9e98609d20e97126e0d94 構成項目の優先順位が高いため、アプリケーション レベルのエラーが発生すると、Application_Error イベントのコードが最初に実行されます。Application_Error イベントで Server.ClearError() 関数が呼び出された場合、5121f102f01349d053e15fc4ab0fdda7設定項目。
以上が.netのエラー処理メカニズムとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。