asp.Net利用Global.asaxはソリューション全体の異常エラーをキャプチャします

1366 ワード

これまでプロジェクトをしていたときは、ページごとにこの異なる異常情報を処理していましたが、1ページ数でtry{}catch{}文ブロックが多く、コード構造全体が美しくありませんでした.
今日、グローバルアプリケーションクラスを利用して異常情報を取得し、serverを利用することについての投稿を見ました.Transfer(''''')エラーを受け入れるページを指定します.加えて受信エラーページでserverを利用する.GetLastError()は、前の例外ソースを取得します.
 
            Global.asaxでのApplication_Error関数は次のようになります.
 
       protected void Application_Error(object sender, EventArgs e)  

       {  

           //                

           try  

           {  

               Server.Transfer("~/Error.aspx");  

           }  

           catch { }  

       } 


 
エラー受付ページError.aspxが異常情報を取得する関連コードは以下の通りである.
Exception ex = Server.GetLastError().GetBaseException(); //       

               if (ex != null)  

               {    

                   Response.Write(ex.Message);      

               }  

               //         

               Server.ClearError(); 


 
テストページaspxのテスト異常コードは以下の通りです.
 
//             

   //test1  

  //int UserID = Convert.ToInt32(Request["UserID"].ToString());  

  

  

  //test2  

  string Name = "aganar";  

  

  int UID = Convert.ToInt32(Name); 


 
Testを実行します.aspxページでは、関連する異常情報が表示され、ページTestで明確に表示されます.aspxページにはtry{}catch{}文ブロックが1つも存在しないため、例外情報を簡単にキャプチャできます.