asp.Net利用Global.asaxはソリューション全体の異常エラーをキャプチャします
1366 ワード
これまでプロジェクトをしていたときは、ページごとにこの異なる異常情報を処理していましたが、1ページ数でtry{}catch{}文ブロックが多く、コード構造全体が美しくありませんでした.
今日、グローバルアプリケーションクラスを利用して異常情報を取得し、serverを利用することについての投稿を見ました.Transfer(''''')エラーを受け入れるページを指定します.加えて受信エラーページでserverを利用する.GetLastError()は、前の例外ソースを取得します.
Global.asaxでのApplication_Error関数は次のようになります.
エラー受付ページError.aspxが異常情報を取得する関連コードは以下の通りである.
テストページaspxのテスト異常コードは以下の通りです.
Testを実行します.aspxページでは、関連する異常情報が表示され、ページTestで明確に表示されます.aspxページにはtry{}catch{}文ブロックが1つも存在しないため、例外情報を簡単にキャプチャできます.
今日、グローバルアプリケーションクラスを利用して異常情報を取得し、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つも存在しないため、例外情報を簡単にキャプチャできます.