簡體   English   中英

WPF-未捕獲異常?

[英]WPF - Exceptions not caught?

我正在嘗試在WPF中實現一個登錄窗口。

我有一個MainWindow.xaml:

<Window ...
    Closing="Window_Closing">
    ...

然后在MainWindow.xaml.cs中:

private void Window_Loaded(object sender, RoutedEventArgs e) {
    LoginWindow loginWindow = new LoginWindow();
    loginWindow.Owner = this;
    loginWindow.ShowDialog();
    ...

在LoginWindow構造函數中,我拋出了異常。 永遠不會被抓住。

如果將Window_Loaded的內容包裝在try / catch塊中,則可以捕獲該異常,但是如果從Window_Load()中重新拋出該異常,則永遠不會捕獲該異常。

對我來說,這似乎很奇怪。 我想我已經習慣了未捕獲異常會殺死應用程序的環境。 在WPF中,我需要做些什么來啟用此功能嗎?

使用此構造會將異常恢復到可見性,並允許您在x86構建的CurrentDomain_UnhandledException方法中捕獲該異常。

    void MainWindow_Loaded(object sender, RoutedEventArgs e)
    {
        Loaded -= MainWindow_Loaded;
        AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
        Dispatcher.BeginInvoke(DispatcherPriority.Loaded, (SendOrPostCallback) delegate
        {
            Login l = new Login {Owner = this};
            l.ShowDialog();
        }, new object[] {null});
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM