1

私のC#アプリでは、例外を処理します:

Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
AppDomain.CurrentDomain.UnhandledException +=
    new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

そして、ハンドラーでダイアログボックスを表示し、Application.Exitを実行しても、送信、送信しないでWindowsエラー報告ダイアログが表示されます...

Windows エラー報告ダイアログがポップアップしないようにするにはどうすればよいですか?


実際、メイン フォーム コンストラクターから例外がスローされた場合、プログラムは Windows エラー レポート dlg で終了します。それ以外の場合は、UI スレッドの他の場所からであれば、期待どおりです。

4

3 に答える 3

2

アプリを自分で終了する必要があります。これはそれを行います:

static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) {
  var ex = e.ExceptionObject as Exception;
  MessageBox.Show(ex.ToString());
  if (!System.Diagnostics.Debugger.IsAttached)
    Environment.Exit(System.Runtime.InteropServices.Marshal.GetHRForException(ex));
}
于 2010-04-13T16:32:30.507 に答える
1

Microsoft にエラー レポートを送信するかどうかを選択するダイアログは例外ではありません。これは、安全でない{} ブロックを使用した場合や、不正な操作を実行する p/invoke を使用した場合に発生する可能性があります。

于 2010-04-13T14:35:48.730 に答える
-1

問題の症状と戦ってはいけないと思います。そもそも未処理の例外が発生するべきではありません。

何が原因なのか手がかりはありますか?

于 2010-04-13T14:16:09.520 に答える