2010年6月4日金曜日

[.NET]想定外の例外の集約処理

想定できる例外(たとえば、型変換の例外/SQL発行時の例外)に関しては、できるだけ狭いスコープで例外処理をすると思いますが、メモリ不足など、想定外のエラーが発生した場合、個別で例外処理というわけには行きません。そういうときに、例外を集約処理します。で、WindowsFormの場合、Application_ThreadExceptionを使います。コードはこんな感じ。

private void Form1_Load(object sender, EventArgs e)
{
    Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
}

void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
{
    System.Diagnostics.Debug.WriteLine(e.Exception.Message);
}

0 件のコメント: