[英]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.