异常处理

Posted lulus

tags:

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

思路

较好的两种处理方式
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 + "\r\n";
    if (error != null)
    {
        str = string.Format(strDateInfo + "Application UnhandledException:{0};\n\r堆栈信息:{1}", error.Message,
            error.StackTrace);
    }
    else
    {
        str = string.Format("Application UnhandledError:{0}", e);
    }
    MessageBox.Show("很抱歉,当前程序遇到一些问题,该操作已终止,请检查网络连接,如果问题依然存在,请联系管理员", "意外的操作", MessageBoxButton.OK,
        MessageBoxImage.Information);
    //标记为“已处理” 
    e.Handled = true;
}

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

使用片段中的处理程序时出现非法状态异常

Java异常处理机制

java 反射代码片段

java.util.MissingResourceException: Can't find bundle for base name init, locale zh_CN问题的处理(代码片段

使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段

片段中的Android致命异常