ホームページ > バックエンド開発 > C#.Net チュートリアル > .netのエラー処理メカニズムとは何ですか

.netのエラー処理メカニズムとは何ですか

藏色散人
リリース: 2020-09-15 14:57:32
転載
7000 人が閲覧しました

.NET のエラー処理メカニズムは次のとおりです: 1. [Page_Error] イベント; 2. ErrorPage 属性; 3. [Application_Error] イベント; 4. [] 構成アイテム。上記の 4 つの処理メカニズムは、主に例外処理とページ レベルのエラー処理に使用されます。

.netのエラー処理メカニズムとは何ですか

.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 属性を機能させるには、 構成アイテムの 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. 構成項目

構成ファイル web.config の 構成セクションでは、リダイレクト ページをデフォルトのエラーとして指定できます。ページのデフォルト 発生した HTTP エラー コードに基づいて特定のページをリダイレクトするか、指定します。このカスタム ページは、アプリケーションの前のレベルでは検出されなかったエラーが発生した場合に表示されます。

<customErrors mode="On" defaultRedirect="~/ErrorHandling/ApplicationError.html"> <error statusCode="404" redirect="~/ErrorHandling/404.html" /> </customErrors>
ログイン後にコピー

同様に、Application_Error と が同時に存在する場合、実行順序にも問題があります。 Application_Error イベント> 構成項目の優先順位が高いため、アプリケーション レベルのエラーが発生すると、Application_Error イベントのコードが最初に実行されます。Application_Error イベントで Server.ClearError() 関数が呼び出された場合、

.NET によって提供される上記の 4 つのエラー処理メカニズムの分析を通じて、それらをさまざまな観点から分類して、理解と使用を容易にすることができます。

1. 機能的に分類: 例外処理 (例外の処理) に使用されるのは Page_Error イベントと Application_Error イベントで、ユーザー エラー ページのリダイレクト (ユーザーをエラー ページにリダイレクトする) の場合は ErrorPage 属性と が使用されます。設定項目。

2. エラー処理の範囲からの分類: Page_Error イベントと ErrorPage 属性はページ レベルのエラー処理に使用され、Application_Error イベントと < はアプリケーション レベルのエラー処理に使用されます。;customErrors>設定項目。

以上が.netのエラー処理メカニズムとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:cnblogs.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート