WPF處理未捕獲的異常
阿新 • • 發佈:2019-02-02
在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
{
MessageBox.Show("當前應用程式遇到一些問題", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
e.Handled = true;//告訴執行時,該異常被處理了,不再作為UnhandledException丟擲了。
}
void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
MessageBox.Show("當前應用程式遇到一些問題,操作已經終止", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
}
}