WPF 异常处理

思路

较好的两种处理方式
1、在发生异常这一级处理
2、当很多地方出现相同的异常,统一抛到App级中,用统一的方法处理(自己写一个异常类)

全局异常处理

在App里面,处理异常,并标记为“已处理”

public App()
{
    //处理UI线程异常
    Application.Current.DispatcherUnhandledException += CurrentDomain_UnhandledException;
}


private static void CurrentDomain_UnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)
{
    var str = "";
    var error = e.Exception;
    var strDateInfo = "出现应用程序未处理的异常:" + DateTime.Now + "
";
    if (error != null)
    {
        str = string.Format(strDateInfo + "Application UnhandledException:{0};

堆栈信息:{1}", error.Message,
            error.StackTrace);
    }
    else
    {
        str = string.Format("Application UnhandledError:{0}", e);
    }
    MessageBox.Show("很抱歉,当前程序遇到一些问题,该操作已终止,请检查网络连接,如果问题依然存在,请联系管理员", "意外的操作", MessageBoxButton.OK,
        MessageBoxImage.Information);
    //标记为“已处理” 
    e.Handled = true;
}
原文地址:https://www.cnblogs.com/Lulus/p/8158361.html