Ваше приложение перестало работать даже при подключении к UnhandledExceptionHandler - PullRequest
2 голосов
/ 05 июня 2011

Я добавил глобальный обработчик ошибок на уровне AppDomain в мое приложение C #, подключив событие UnhandledExceptionHandler.

Моя проблема в том, что, хотя я обрабатываю это исключение, я все еще получаю всплывающее окноговоря "Приложение перестало работать".

Это нормальное поведение?Можно ли его отключить?или, может быть, это хорошая практика - отображать это сообщение?

Ответы [ 2 ]

3 голосов
/ 05 июня 2011

Это нормальное поведение?

Да.Подумайте об этом, , где должен быть возобновлен ваш код?В каком состоянии?

Можно ли его отключить?

Только путем обработки исключений в соответствующей точке вашей программы, то есть в коде верхнего уровня.UnhandledExceptionHandler - это не замена, а инструмент диагностики неполной обработки.

или, может быть, это хорошая практика, чтобы отображать это сообщение?

Да.Вы должны регистрировать исключения, которые поступают туда, но вы уже потеряли контроль.

2 голосов
/ 05 июня 2011

Я не думаю, что возможно восстановить существующий экземпляр приложения, когда вы дойдете до этого момента.В MSDN нет информации об этом, и предлагается «Если имеется достаточно информации о состоянии приложения, могут быть предприняты другие действия, такие как сохранение данных программы для последующего восстановления».( ссылка )

Имеет смысл не иметь возможности для восстановления.Если вы поймали исключение в Unhandled ExceptionHandler, это означает, что ваше приложение не смогло с ним справиться, так что это ваш последний шанс записать то, что произошло (для последующих расследований) или сохранить данные пользователя.Это звучит как проблема архитектуры, если «необработанный» обработчик исключений должен «обрабатывать» исключения и восстанавливать приложение.

Почему бы не восстановиться, создав новый экземпляр приложения?(или с помощью функции Перезагрузка и восстановление )

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