WPF全局异常处理程序
这个问题在这里已经有了答案:
您可以处理AppDomain.UnhandledException
事件
编辑:实际上,这个事件可能更充足: Application.DispatcherUnhandledException
您可以在不同级别捕获未处理的异常:
AppDomain.CurrentDomain.UnhandledException
所有线程。 Dispatcher.UnhandledException
从一个特定的UI调度程序线程。 Application.Current.DispatcherUnhandledException
从您的WPF应用程序中的主UI调度程序线程。 TaskScheduler.UnobservedTaskException
。 您应该考虑在什么级别捕捉未处理的异常。
决定#2和#3取决于您是否使用多个WPF线程。 这是一个非常异乎寻常的情况,如果你不确定你是不是,那很可能你不是。
Application.Dispatcher.UnhandledException的代码的一个简单示例:
public App() :base() {
this.Dispatcher.UnhandledException += OnDispatcherUnhandledException;
}
void OnDispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e) {
string errorMessage = string.Format("An unhandled exception occurred: {0}", e.Exception.Message);
MessageBox.Show(errorMessage, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
e.Handled = true;
}
我在App.xaml.cs中添加了这段代码
链接地址: http://www.djcxy.com/p/5941.html上一篇: WPF global exception handler
下一篇: Register NSURLProtocol (URLProtocol) class for use with external app?