WPF 精修篇 全局为处理异常处理

Posted lonelyxmas

tags:

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

原文:WPF 精修篇 全局为处理异常处理

当我们写代码的时候 对代码错误异常处理 有的时候会 没做处理 

比如 我们执行如下代码 会引发程序崩溃

  1. private void Button_Click(object sender, RoutedEventArgs e)
  2. {
  3. throw new Exception("字符串引发异常 日志输出");
  4. }

技术图片

这是我们不能接受的 

 

当我们遇到这个问题 要一个一个的去寻找 担惊受怕  那有没有一个方法 能拦截所有的异常 不然程序挂掉那?

有的 WPF 中 dispatcherUnhandledException

 

我们在APP里 重写 Onstartup 方法

  1. public partial class App : Application
  2. {
  3. protected override void OnStartup(StartupEventArgs e)
  4. {
  5. base.OnStartup(e);
  6. DispatcherUnhandledException += App_DispatcherUnhandledException;
  7. }
  8. void App_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
  9. {
  10. MessageBox.Show(e.Exception.ToString());
  11. e.Handled = true;
  12. // throw new NotImplementedException();
  13. }
  14. }

在这里 我们可以拦截所有的未处理异常 写日志 或者重启都可以

技术图片

以上是关于WPF 精修篇 全局为处理异常处理的主要内容,如果未能解决你的问题,请参考以下文章

WPF 精修篇 依赖属性

WPF 精修篇 管理资源字典

WPF 精修篇 缩放ScaleTransform

WPF 精修篇 属性触发器

WPF捕获全局未处理异常

WPF 精修篇 调用Win32Api