Получение диалогового окна отчетов об ошибке Windows

StackOverflow https://stackoverflow.com/questions/2630162

  •  26-09-2019
  •  | 
  •  

Вопрос

В моем приложении C # даже я справляюсь с исключением:

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

А затем в обработчике, показывающий диалоговое окно и делать Application.exit Все еще получение диалогового окна отчетов об ошибке Windows с отправкой, не отправляйте ...

Как предотвратить ошибку Windows Reporting Dialog от появления?


На самом деле, если исключение брошено из основного конструктора формы, то программа заканчивается с сообщением об ошибке Windows DLG. В противном случае, если из какого-либо другого расположения нити UI, то как ожидалось.

Это было полезно?

Решение

Вам нужно будет прекратить приложение самостоятельно. Это сделает это:

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));
}

Другие советы

Диалог, который представляет выбор для отправки или не отправки отчета об ошибках в Microsoft, находится за пределы исключения. Это может произойти, если вы используете небезопасные блоки {} или используете P / Invoke's, которые выполняют некоторую незаконную работу.

Я думаю, вы не должны бороться с симптомами вашей проблемы. Неприоткрытые исключения не должны произойти в первую очередь.

У вас есть подсказки на то, что их вызывает?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top