Приложение все еще падает, когда у меня есть CurrrentDomain.UnhandledException и DispatcherUnhandledException на месте - PullRequest
0 голосов
/ 07 марта 2012

Я пишу приложение WPF и раздражен необработанным исключением, которое не может быть обнаружено ни одним из моих блоков try. Поэтому я добавил эти два мощных обработчика исключений в мой app.xml.cs:

this.Dispatcher.UnhandledException += Application_DispatcherUnhandledException;
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

Но они не работают для меня. Я все еще получаю этот сбой: Приложение перестало работать, имя события проблемы: APPCRASH, имя модуля ошибки: clr.dll

Что мне теперь делать, чтобы найти проблему? Я, кажется, уже положил блоки try / catch везде, где это возможно.

Заранее спасибо.

1 Ответ

0 голосов
/ 07 марта 2012

Вы не можете поймать все.

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

Я полагаю, что эти исключения не "перехватываются", и вам нужно будет найти причину их возникновения.

И общее правило программирования состоит в том, чтобы никогда не перехватывать исключения молча и разрешать им "всплывать"up ", если вы не можете их правильно обработать.

Добавление блоков try, чтобы не вылетать из вашей программы, на самом деле плохая идея.Вы должны выяснить, почему его бросали исключения.Плюс исключения являются более дорогостоящими ресурсами, чем условия.

Ресурсы:

Частично сбой приложения?Как я могу поймать неуловимые исключения?

Исключения первого шанса

...