.NET Tips/UnhandledException
発生した例外をキャッチしないで、 GUI イベントの外、スレッドの外にスローされると、 .NET Framework によって処理され、エラーを表すダイアログが表示されます。しかし、発生した例外をすべてキャッチするように記述するのはかなり大変です (特に、イベントを多用する GUI アプリケーションや、スレッドを多用するマルチスレッド アプリケーションの場合) 。
Application.ThreadException イベント、及び Thread.GetDomain().UnhandledException イベントを利用すると、これらキャッチされなかった例外を処理することができます。
ちなみに、 main スレッドの場合、 main メソッドでキャッチすれば処理できます。
GUI アプリケーションにおいて、コントロールで発生するイベントの処理中にキャッチされなかった例外を一括で処理するイベントです。 Application.Run メソッドの呼び出しの前にイベントを設定します。
マルチスレッド アプリケーションにおいて、 main スレッド以外のスレッドでキャッチされなかった例外を一括で処理するイベントです。
Application.ThreadException イベント、及び Thread.GetDomain().UnhandledException イベントを利用すると、これらキャッチされなかった例外を処理することができます。
ちなみに、 main スレッドの場合、 main メソッドでキャッチすれば処理できます。
Application.ThreadException イベント
GUI アプリケーションにおいて、コントロールで発生するイベントの処理中にキャッチされなかった例外を一括で処理するイベントです。 Application.Run メソッドの呼び出しの前にイベントを設定します。
static void Main() { Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException); Application.Run(new MainForm()); }
Thread.GetDomain().UnhandledException イベント
マルチスレッド アプリケーションにおいて、 main スレッド以外のスレッドでキャッチされなかった例外を一括で処理するイベントです。
static void Main() { Thread.GetDoamin().UnhandledException += new UnhandledExceptionEventHandler(Application_UnhandledException); }
2005年12月25日(日) 20:31:07 Modified by uguuxp