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