wpf 全局异常捕获处理
/// <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); } }