思路
较好的两种处理方式
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;
}