WPF异常捕获三种处理 UI线程, 全局异常,Task异常

Posted lonelyxmas

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF异常捕获三种处理 UI线程, 全局异常,Task异常相关的知识,希望对你有一定的参考价值。

原文:WPF异常捕获三种处理 UI线程, 全局异常,Task异常

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.");
}




























以上是关于WPF异常捕获三种处理 UI线程, 全局异常,Task异常的主要内容,如果未能解决你的问题,请参考以下文章

WPF 捕捉全局异常

在 WPF 的子线程中捕获未处理的异常

wpf 全局异常捕获处理

WPF 线程中异常导致程序崩溃

WPF全局异常捕获

.net捕获全局异常并且记录日志多线程方式发送邮件提醒