>// 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); > } >} >>
>>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 :