C # WPF Dispatcher.UnhandledException не может перехватить исключение - PullRequest
0 голосов
/ 26 ноября 2018

Унаследованное приложение WPF устанавливает Dispatcher.UnhandledException в App.xaml.cs:

public App() : base()
{
    this.Dispatcher.UnhandledException += OnDispatcherUnhandledException;
}

За исключением случаев, когда время от времени появляется сообщение "Программа перестала работать" без вызова OnDispatcherUnhandledException.Что касается большого обсуждения в других темах, я добавляю следующее:

AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;

, но не понимаю, как это помогает.Кто-нибудь может объяснить разницу между Dispatcher и CurrentDomain UnhandledException?

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Вы, вероятно, получаете одно из немногих исключений, которые не могут быть обнаружены.Например, StackOverflowException, ThreadAbortException и AccessViolationException (часто из-за неисправного собственного кода).

Прочитайте этот ответ для получения дополнительной информации.

0 голосов
/ 26 ноября 2018

Похоже, у вас есть исключения, возникающие в другом потоке.Вы можете отладить CurrentDomain_UnhandledException, чтобы получить представление о том, откуда они берутся.Dispatcher.UnhandledException обрабатывает исключения в конкретном потоке пользовательского интерфейса, связанном с этим Dispatcher.Если у вас есть только один поток пользовательского интерфейса (обычно), он должен обрабатывать эти исключения.Если у вас есть исключения в других потоках (скорее всего, не в пользовательском интерфейсе), они могут обрабатываться с помощью AppDomain.CurrentDomain.UnhandledException.

http://blogs.microsoft.co.il/arik/2011/08/28/order-in-chaos-handling-unhandled-exceptions-in-a-wpf-application/

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