В настоящее время я пишу сервер, на котором размещено несколько модулей. Сервер запускает каждый модуль в отдельном AppDomain. Чего я хочу добиться, так это изоляции исключений, т.е. когда один модуль выдает исключение, я не хочу, чтобы весь процесс завершался, а только этот конкретный AppDomain. Я знаю, что могу сказать CLR вернуться к старому поведению (.NET 1.0), когда все неперехваченные исключения в разных потоках были проглочены. Однако это не самое «элегантное» решение.
Обработка неперехваченных исключений в консольном приложении C#
Ответы (1)
Как насчет того, чтобы подписаться на это событие:
AppDomain.CurrentDomain.UnhandledException
Вам нужно будет преобразовать свойство ExceptionObject из типа Object в Exception.
Надеюсь, это поможет.
person
Igal Tabachnik
schedule
23.10.2008
К сожалению, это не обработчик исключений, а только уведомляет вас о необработанном исключении. В общем приложение все равно вылетит :(
- person paszczi; 23.10.2008
когда происходит необработанное исключение, технически приложение уже аварийно завершило работу. Это позволяет вам выполнить действие и отладить приложение или уведомить пользователя.
- person Tim Davis; 11.09.2015