Получение диалогового окна отчетов об ошибке Windows
Вопрос
В моем приложении 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, которые выполняют некоторую незаконную работу.
Я думаю, вы не должны бороться с симптомами вашей проблемы. Неприоткрытые исключения не должны произойти в первую очередь.
У вас есть подсказки на то, что их вызывает?