1. 程式人生 > >WPF處理未捕獲的異常

WPF處理未捕獲的異常

在WPF應用程式中,主要兩大類未處理異常:一類是在UI執行緒丟擲的,例如操作介面上的某個控制元件,然後執行某個程式碼的時候,遇到了異常;另一類是非UI執行緒丟擲的,例如在一個多執行緒的程式裡面,工作執行緒的遇到了異常。

對於UI執行緒的未處理異常,可以通過監控下面這個事件來處理

Application.Current.DispatcherUnhandledException  

對於非UI執行緒丟擲的未處理異常,可以通過監控下面這個事件來處理

AppDomain.CurrentDomain.UnhandledException

對於非UI執行緒丟擲的未處理異常,可以通過監控下面這個事件來處理

  public partial class App : Application
    {
        public App()
        {
            Application.Current.DispatcherUnhandledException += Current_DispatcherUnhandledException;
            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
  }
void Current_DispatcherUnhandledException(object
sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
{
MessageBox.Show("當前應用程式遇到一些問題", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
e.Handled = true;//告訴執行時,該異常被處理了,不再作為UnhandledException丟擲了。
}
        void CurrentDomain_UnhandledException(object
sender, UnhandledExceptionEventArgs e) { MessageBox.Show("當前應用程式遇到一些問題,操作已經終止", "提示", MessageBoxButton.OK, MessageBoxImage.Information); }
 }