/// <summary>
/// App.xaml 的交互逻辑
/// </summary>
public partial class App : Application
{
private const string Tag = nameof(App);
public App()
{
Dispatcher.UnhandledException += Dispatcher_UnhandledException;
DispatcherUnhandledException += App_DispatcherUnhandledException;
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
}
private void Dispatcher_UnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
{
Logger.Fatal(Tag,"",e.Exception);
}
private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
var exception = e.ExceptionObject as Exception;
var terminatingMessage = e.IsTerminating ? " The application is terminating." : string.Empty;
var exceptionMessage = exception?.Message ?? "An unmanaged exception occured.";
var message = string.Concat(exceptionMessage, terminatingMessage);
Logger.Fatal(Tag, message, exception);
}
private void App_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
{
Logger.Fatal(Tag, "", e.Exception);
}
}
--------------------------------------------------------------------------------------------------------------------------------------------------