私はプログラムのメインクラスでCで未処理の例外をキャッチする方法は?
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
Application.Run(new Form1());
}
public static void CurrentDomain_UnhandledException(Object sender, UnhandledExceptionEventArgs e)
{
MessageBox.Show((e.ExceptionObject as Exception).Message, "Unhandled domain Exception");
Application.Exit();
}
をこのコードを使用して、私のプログラム内の任意のunhandeled例外をキャッチしようとしているが、今の私のフォームForm1のイム、私はシンプルな例外を作成しよう:なし、ゼロによる除算をtry catchブロックでは、メインモジュールのコードが実際に例外をインターセプトしますが、私はまだMS Visual Studioダイアログを持っています。アプリケーションは終了しません。実際の状況ではもちろん、私はエラーをログ/メールします。しかし私は私の例外を傍受した後に実行がなぜ続くのか理解したいと思いますか?メインUIスレッドからのすべての例外をキャッチおかげで
Application.Exit()の代わりにEnvironment.Exit()を使用します。 –