2012-04-25 3 views
2

В моем приложении WPF некоторые пользователи получают сообщение об ошибке «приложение, сгенерированное исключение, которое не может обрабатывать». Я применил обработчик события Application.DispatcherUnhandledException, но исключение не обрабатывается этим событием. Есть ли какая-либо вероятность того, что исключение происходит за пределами приложения, что вызывает закрытие моего приложения, может быть, что-то с памятью?wpf unhandled exception

ответ

6

Одна вещь, которую вы могли бы попробовать, в дополнение к DispatcherUnhandledException, чтобы слушать за исключением поступающих из AppDomain

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

Это должно, по идее, перехватывать все исключения, связанные с приложением, а не только те, работающих в Диспетчер.

2

ли вы попробовать также добавить это к вашему запуска приложения ?:

AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); 
0

По моему опыту, если только некоторые пользователи получают сообщение об ошибке (и те пользователи получают сообщение об ошибке все время), то вполне вероятно, что файл проекта ссылается на dll без установки для свойства CopyToLocal значения true, поэтому предполагается, что все пользователи имеют DLL, установленную в GAC, что может быть не для некоторых пользователей.

0

Если обработчик вызывается, но исключение остается необработанным, необходимо обработать событие: e.Handled=true; см: How to suppress UI exceptions in wpf?

+0

исключение обрабатывается, я считаю, что решение, предложенное tomasmcguinness и Dummy01 решит проблему – torpederos

Смежные вопросы