.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イベントと構成アイテム.