// in the Main: //Creates an instance of the methods that will handle the exception. CustomExceptionHandler eh = new CustomExceptionHandler(); //Adds the event handler to to the event. Application.ThreadException += new ThreadExceptionEventHandler(eh.OnThreadException); Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException); // runs the main form Application.Run(new Form1()); // then the custom exception handling class internal class CustomExceptionHandler { // Handles the exception event. public void OnThreadException(object sender, ThreadExceptionEventArgs t) { DialogResult result = DialogResult.Cancel; try { result = this.ShowThreadExceptionDialog(t.Exception); } catch { try { MessageBox.Show("Fatal Error", "Fatal Error", MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Stop); } finally { Application.Exit(); } } // Exits the program when the user clicks Abort. if (result == DialogResult.Abort) Application.Exit(); } // Creates the error message and displays it. private DialogResult ShowThreadExceptionDialog(Exception e) { string errorMsg = "An error occurred please contact the adminstrator with the following information:\n\n"; errorMsg = errorMsg + e.Message + "\n\nStack Trace:\n" + e.StackTrace; return MessageBox.Show(errorMsg, "Application Error", MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Stop); } }Hope it helps ...
>Friend Class AppMgr > <STAThread()> _ > Shared Sub Main() > ''The 2 event handlers > ''add an unhandled exceptions handler > Dim currentDomain As AppDomain = AppDomain.CurrentDomain > 'for regular unhandled stuff > AddHandler currentDomain.UnhandledException, AddressOf MYExceptionHandler > 'for threads behind forms > AddHandler Application.ThreadException, AddressOf MYThreadHandler > > Dim frm1 As Form > frm1 = New DocProcess_Main() > Application.Run(frm1) > End Sub >#Region "Exeption Handler" > Shared Sub MYExceptionHandler(ByVal sender As Object, ByVal e As UnhandledExceptionEventArgs) > Dim EX As Exception > EX = e.ExceptionObject > 'Console.WriteLine(EX.StackTrace) > DisplayError(EX) > End Sub > Shared Sub MYThreadHandler(ByVal sender As Object, ByVal e As Threading.ThreadExceptionEventArgs) > 'Console.WriteLine(e.Exception.StackTrace) > DisplayError(e.Exception) > End Sub > Shared Sub DisplayError(ByVal ex As Exception) > Dim errorMessage As String = ("Unhandled Exception:" + vbLf + vbLf + ex.Message + vbLf + vbLf + ex.GetType.ToString + vbLf + vbLf + "Stack Trace:" + vbLf) + ex.StackTrace > MessageBox.Show(errorMessage, "DMS Application Error", MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.[Stop]) > MessageBox.Show(ex.ToString, "DMS Application Error", MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.[Stop]) > End Sub >#End Region >End Class > >Public Class DocProcess_Main > Inherits System.Windows.Forms.Form > ... > ... >End Class>The error I currently get :