C#と諸々

C#がメインで他もまぁ諸々なブログです
おかしなこと書いてたら指摘してくれると嬉しいです(´・∀・`)
つーかコメント欲しい(´・ω・`)

2006/07/22 18:58
ASP.NETでは、ハンドルされなかった例外はGlobal.asaxのApplication_Error(HttpAplication.Errorイベントのハンドラ)で処理できる。
発生した例外は this.Server.GetLastError()で取得できるのだが、例外は基本的にHttpUnhandledExceptionにラップされている(必ずではない)ので注意する必要がある。
例外を処理したら this.Server.ClearError()でクリアすること。ただし、Web.configのcustomErrorsセクションに設定したエラー処理方法を適用させたい場合はクリアしない。

Global.asax void Application_Error(object sender, EventArgs e)
{
    Exception ex =
        this.Server.GetLastError() is HttpUnhandledException ?
        this.Server.GetLastError().InnerException :
        this.Server.GetLastError();
    this.Server.ClearError();
    if (ex is ApplicationException)
    {
        // 業務上の例外に対する処理
    }
    else
    {
        // 技術的な例外に対する処理
    }
}

また、ページ単位で例外ハンドラを用意することもできる。
この場合はPage_Error(TemplateControl.Errorイベントのハンドラ)で処理する。
Global.asaxのApplication_Errorとは違い、GetLastError()で取得できる例外はハンドルされなかった例外そのものである。

Hoge.aspx.cs protected void Page_Error(Object sender, EventArgs e)
{
    Exception ex = this.Server.GetLastError();
    this.Server.ClearError();
    if (ex is ApplicationException)
    {
        // 業務上の例外に対する処理
    }
    else
    {
        // 技術的な例外に対する処理
    }
}
タグ: C# .NET ASP.NET 例外処理


お疲れ様です。いつもお世話になっております。
asp.netでGlobal.asaxのApplication_Errorのエラーの消し方を探していたらここにたどり着きました!!
参考にさせていただきます。
ありがとうございました。

2010.05.25 17:41 URL | kaiso #- [ 編集 ]

承認待ちコメント
このコメントは管理者の承認待ちです

2010.07.23 03:30  | # [ 編集 ]












トラックバックURL↓
http://csharper.blog57.fc2.com/tb.php/1-38849a20