/// <summary> /// 当前域异常 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) { var ex = e.ExceptionObject as Exception; if (ex == null) { return; } if (ex is AggregateException) { var sb = new System.Text.StringBuilder(); foreach (var innerEx in (ex as AggregateException).Flatten().InnerExceptions) { LogHelper.WriteLog(LogLevel.LOG_LEVEL_EMERG, innerEx, typeof(Program)); sb.AppendLine(innerEx.Message); } FrmException.ShowBug(ex); MessageDxUtil.ShowError(sb.ToString()); // 捕捉异常图片 getScreenshot(); } else { LogHelper.WriteLog(LogLevel.LOG_LEVEL_EMERG, ex, typeof(Program)); FrmException.ShowBug(ex); // 捕捉异常图片 getScreenshot(); } }
/// <summary> /// 进程异常 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e) { if (e.Exception == null) { return; } LogHelper.WriteLog(LogLevel.LOG_LEVEL_EMERG, e.Exception, typeof(Program)); Thread t = new Thread(getScreenshot); t.IsBackground = true; t.Start(); FrmException.ShowBug(e.Exception); }