.netエラー処理メカニズム

7855 ワード


考えてみましょうASP.NETは私たちにいくつかのエラー処理メカニズムを提供してくれましたか?もし彼らを同時に使うならば一定の優先度がありますか?のNETは4つのエラー処理メカニズムを提供し、それらには一定の優先順位がある.
Page_Errorイベント>ErrorPageプロパティ>Application_Errorイベント>構成アイテム.この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も存在しますが、Exceptionを投げ出すとページの実行順序はどうなりますか?ページはPage_を先に実行しますErrorイベント処理関数、Page_Error()イベントで関数サーバを呼び出す.ClearError()異常情報をクリアすると、ErrorPage属性指定ページにジャンプしません.サーバが呼び出されていない場合.ClearError()は、Exception情報を上に投げ続け、ErrorPage指定ページにジャンプします.優先順位:Page_Errorイベント>ErrorPageプロパティ.     
3.Application_ErrorイベントとPage_Errorイベントと同様に、Application_を使用できます.Errorイベントは、アプリケーションで発生したエラーをキャプチャします.イベントはアプリケーション全体で発生するため、アプリケーションのエラー情報を記録したり、発生する可能性のある他のアプリケーションレベルのエラーを処理したりすることができます.Globalでasaxファイルに次のコードを追加すればOKです.protected void Application_Error(object sender, EventArgs e)
      {
         Exception ex = Server.GetLastError().GetBaseException();
         
// Exception Log

         
//

          Response.Write("Error:" + ex.Message);
         
// Exception,

         
//

          Server.ClearError();
     }


      
4.構成項目
ITPUBパーソナルスペース'u#v T s B K t
プロファイルweb.configの構成セクションでは、リダイレクト・ページをデフォルトのエラー・ページとして指定できます.
defaultRedirectまたは開始した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()関数、構成セクションの
Exceptionがクリアされたため、defaultRedirectは機能しません.アプリケーションの場合Errorイベントで呼び出す必要はありません
Server.ClearError()関数では、エラー・ページがdefaultRedictで指定したURLページに再配置され、ユーザーに友好的なエラー情報が表示されます.
対を通るNETが提供した以上の4つのエラー処理メカニズムの分析は,それらを異なる角度から分類することができ,理解と使用に便利である.
ITPUBパーソナルスペース4 M|z F!L1k
      
1.機能上の分類:例外処理(Handling exceptions)はPage_ErrorイベントとApplication_Errorイベント;ユーザーエラーページのリダイレクト(Redirecting the user to an error page)は、ErrorPageプロパティと構成アイテムです.      2.エラー処理の範囲から分類:ページレベル(Page level)エラー処理に使用されるのはPage_ErrorイベントとErrorPageプロパティ;アプリケーションレベルのエラー処理に使用されるのはApplication_です.Errorイベントと構成アイテム.