Skip to the content.

when you use C# to build Windows Forms Application you come to a point when you need a general Exception handing for both you UI and any thread in the application … its easy just add the following to your Main method in the Program class

// Add the event handler for handling UI thread exceptions to the event.
Application.ThreadException += new ThreadExceptionEventHandler(UIThreadException);
 
// Set the unhandled exception mode to force all Windows Forms errors to go through
// our handler.
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
 
// Add the event handler for handling non-UI thread exceptions to the event.
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(UnhandledException);

and make sure you add the following methods to the Program Class

private static void UIThreadException(object sender, ThreadExceptionEventArgs t)
{
    // Handel your Exception here
    MessageBox.Show(t.Exception.Message, "error");
}
 
private static void UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
    // Handel your Exception here
    var ex = e.ExceptionObject as Exception;
    MessageBox.Show(ex.Message, "error");
}