protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); RegisterEvents(); }
private void RegisterEvents() { //TaskScheduler.UnobservedTaskException += (sender, args) => //{ // MessageBox.Show(args.Exception.Message); // args.SetObserved(); //};
this.DispatcherUnhandledException += App_DispatcherUnhandledException; TaskScheduler.UnobservedTaskException += new EventHandler< UnobservedTaskExceptionEventArgs>(TaskScheduler_UnobservedTaskException);
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; }
private void App_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e) {
}
static void TaskScheduler_UnobservedTaskException(object sender, UnobservedTaskExceptionEventArgs e) { foreach (Exception item in e.Exception.InnerExceptions) { Console.WriteLine("异常类型:{0}{1}来自:{2}{3}异常内容:{4}", item.GetType(), Environment.NewLine, item.Source, Environment.NewLine, item.Message); } //将异常标识为已经观察到 e.SetObserved(); }
private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) { MessageBox.Show("Unhandled exception."); } |