コード例 #1
0
ファイル: App.xaml.cs プロジェクト: JustGentle/Just.WPF
 private void TaskScheduler_UnobservedTaskException(object sender, UnobservedTaskExceptionEventArgs e)
 {
     try
     {
         Logger.Fatal("Task线程异常", e.Exception);
         e.SetObserved();//设置该异常已察觉(这样处理后就不会引起程序崩溃)
         MessageWin.Error("系统发生未处理的异常", "系统错误");
         ShutdownWhenNoMainWindow();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "非UI线程发生未处理错误", MessageBoxButton.OK, MessageBoxImage.Error);
     }
 }
コード例 #2
0
ファイル: App.xaml.cs プロジェクト: JustGentle/Just.WPF
 private void App_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)
 {
     try
     {
         e.Handled = true; //把 Handled 属性设为true,表示此异常已处理,程序可以继续运行,不会强制退出
         Logger.Fatal("UI线程异常", e.Exception);
         MessageWin.Error("系统发生未处理的异常", "系统错误");
         ShutdownWhenNoMainWindow();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "UI线程发生未处理错误", MessageBoxButton.OK, MessageBoxImage.Error);
     }
 }
コード例 #3
0
ファイル: App.xaml.cs プロジェクト: JustGentle/Just.WPF
 private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
 {
     try
     {
         var msg = "非UI线程发生";
         msg += e.IsTerminating ? "致命错误" : "异常";
         if (e.ExceptionObject is Exception ex)
         {
             Logger.Fatal(msg, ex);
         }
         else
         {
             Logger.Fatal(msg, new Exception(e.ExceptionObject?.ToString()));
         }
         MessageWin.Error("系统发生未处理的异常", "系统错误");
         ShutdownWhenNoMainWindow();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "非UI线程发生未处理错误", MessageBoxButton.OK, MessageBoxImage.Error);
     }
 }
コード例 #4
0
        private UserControl CreateView(string className, string title)
        {
            UserControl view = null;

            try
            {
                view = Container.ResolveNamed <IDependency>(className) as UserControl;
                if (view == null)
                {
                    Logger.Warn($"【{title}】初始化失败");
                    MessageWin.Warn($"【{title}】初始化失败");
                    return(null);
                }
                view.Unloaded += ChildView_Unloaded;
            }
            catch (Exception ex)
            {
                Logger.Error($"【{title}】初始化错误", ex);
                MessageWin.Error($"【{title}】初始化错误");
                return(null);
            }
            return(view);
        }
コード例 #5
0
 public static void MessageError(string msg, string title = "错误")
 {
     DispatcherInvoke(() => { MessageWin.Error(msg, title); });
 }