WPF - исключений не поймали? - PullRequest
1 голос
/ 09 декабря 2011

Я пытаюсь реализовать окно входа в систему в 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?

1 Ответ

1 голос
/ 09 декабря 2011

Использование этой конструкции восстановит видимость исключения и позволит вам перехватить его в методе CurrentDomain_UnhandledException в сборке x86 ...

    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});
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...