Как применить Exception Globally для Unhanded исключений в C # (приложение представляет собой комбинацию WPF, Winforms и Project Library Project) - PullRequest
0 голосов
/ 09 мая 2018

У нас есть настольное приложение 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.

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