2005年05月29日

UnhandledException(2)

   このエントリーをはてなブックマークに追加 Clip to Evernote
AppDomain.CurrentDomain.UnhandledExceptionを使うサンプルコードは以下のとおり。

private void button1_Click(object sender, System.EventArgs e) {
AppDomain.CurrentDomain.UnhandledException +=
new UnhandledExceptionEventHandler(UnhandledException);

}
private void UnhandledException(object sender, UnhandledExceptionEventArgs e) {
Console.WriteLine("例外が発生" + e.ExceptionObject.ToString());
}

private void button2_Click(object sender, System.EventArgs e) {
Thread th = new Thread(new ThreadStart(MyTask));
th.Start();
}

private void MyTask() {
throw new ApplicationException("スレッドで何らかの例外が発生");
}

先日は、ちょっと使い方が面倒と書きましたが、これだけだと、それほどでもないですね。
そうです。普通に Thread クラスを使って、スレッドを起動した場合は、これで、例外を補足することができます。
でも、非同期デリゲートなんかを使うと、AppDomain.CurrentDomain.UnhandledException はややこしい状態になってしまいます。(続きま、また今度)


 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/23509116