DispatcherUnhandledException создается только потоком пользовательского интерфейса и только в том случае, если при запуске события было создано исключение. Существует некоторая традиция для обработки подобных исключений специально, Windows Forms имеет это тоже с Application.ThreadException (плохо названное, ничего общего с потоками).
Причина в том, что существует небольшая возможность обработать исключение и сохранить программу в живых, поскольку обработчики событий пользовательского интерфейса не всегда слишком сильно изменяют состояние программы. Это требует больших усилий для принятия желаемого за действительное. Windows Forms делает это до крайности, он отображает ThreadExceptionDialog, который имеет кнопку «Продолжить», позволяя пользователю игнорировать исключение. WPF этого не делает, вам придется написать такой диалог самостоятельно. Вот почему это событие.
Действие DispatcherUnhandledException по умолчанию не должно исключать исключение. Так что вы можете проигнорировать это, AppDomain.UnhandledException будет срабатывать следующим образом.
Фактически, когда приложение.DispatcherUnhandledException не используется, эти исключения будут отображаться в AppDomain.UnhandledException, и приложение немедленно выйдет. – stijn
Приложение не будет существовать, если исключение поймано и обработано.Как ответ, так и комментарий подразумевают, что в любом случае приложение выйдет, что не так. – vikp