У нас есть настольное приложение Windows, которое в основном выполняется с использованием WPF (Main) и создает одну небольшую часть, в основном библиотеку классов, которая выполняет больше бизнес-процессов и услуг.
Мы получаем необработанное исключение где-то в приложении. Мы пытаемся перехватить исключение с помощью DispatcherUnhandledException, но не используем его.
Код приложения XAML.
<Application x:Class="MyApp.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
ShutdownMode="OnExplicitShutdown"
Startup="Application_Startup"
DispatcherUnhandledException ="AppDispatcherUnhandledException">
<Application.Resources>
</Application.Resources>
</Application>
private void Application_Startup(object sender, StartupEventArgs e)
{
// Global exception handling
Application.Current.DispatcherUnhandledException += new DispatcherUnhandledExceptionEventHandler(AppDispatcherUnhandledException);
}
void AppDispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)
{
{
//#if DEBUG // In debug mode do not custom-handle the exception, let Visual Studio handle it
e.Handled = false;
//#else
ShowUnhandledException(e);
// #endif
}
}
void ShowUnhandledException(DispatcherUnhandledExceptionEventArgs e)
{
e.Handled = true;
LogHelper.LogEntry(LogEntryModel.Create(this).Fatal(e.Exception.StackTrace));
}
Я вижу, что в моих файлах журналов последний журнал был написан, относящийся к классу Class Library Services.
Так как же поймать это исключение.
PS: Здесь мой вопрос заключается в том, как отловить необработанное исключение, если используется несколько вещей, таких как проекты WPF, Winforms и Class Library.