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.
// 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");