Получение окна отчетов об ошибках Windows - PullRequest
1 голос
/ 13 апреля 2010

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

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

, а затем в обработчике, показывающем диалоговое окно и делающим Application.Exit по-прежнему получает диалоговое окно отчетов об ошибках Windows с «Отправить, не отправлять ...»

Как предотвратить появление диалогового окна отчетов об ошибках Windows?


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

Ответы [ 3 ]

2 голосов
/ 13 апреля 2010

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

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));
}
1 голос
/ 13 апреля 2010

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

0 голосов
/ 13 апреля 2010

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

Есть ли у вас какие-либо подсказки о том, что их вызывает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...