Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Terminate application after unhandled exception

I have a problem in a WPF application. I wrote this code:

public partial class App : Application
{
    public App()
    {
        AppDomain.CurrentDomain.UnhandledException += new 
            UnhandledExceptionEventHandler(MyHandler);
    }

    void MyHandler(object sender, UnhandledExceptionEventArgs e)
    {
        Exception exception = e.ExceptionObject as Exception;
        MessageBox.Show(exception.Message, "ERROR",
                        MessageBoxButton.OK, MessageBoxImage.Error);
    }

    ...
}

but when a unhandled exception happens, a lot of MessageBox appear to the screen (the exception happens in a timed routine) and after closing one of them, Windows signals that there is an unhandled exception.

How can I avoid multiple MessageBoxes?
How can I avoid the message of an unhandled exception?
How can I terminate the application after the exception?
As you can easily suppose, I would like to show a message (but only one) with my MessageBox and then terminate the application without any other message.

In a previous question related to this argument, Kyle Rozendo told me to use DispatcherUnhandledException. Is it necessary or the code I written is sufficient?

Thank you.

like image 719
Maurizio Reginelli Avatar asked Dec 30 '22 02:12

Maurizio Reginelli


1 Answers

You can also use Application.Exit() or System.Environment.Exit(exitCode) to immediately shut down your application after you have shown your error dialog box.

like image 138
Nick Avatar answered Jan 09 '23 01:01

Nick