How to: Log Exceptions in Visual Basic
You can use the My.Application.Log
and My.Log
objects to log information about exceptions that occur in your application. These examples show how to use the My.Application.Log.WriteException
method to log exceptions that you catch explicitly and exceptions that are unhandled.
For logging tracing information, use the My.Application.Log.WriteEntry
method. For more information, see WriteEntry
To log a handled exception
Create the method that will generate the exception information.
Public Sub ExceptionLogTest(ByVal fileName As String) End Sub
Use a
Try...Catch
block to catch the exception.Try Catch ex As Exception End Try
Put the code that could generate an exception in the
Try
block.Uncomment the
Dim
andMsgBox
lines to cause a NullReferenceException exception.' Code that might generate an exception goes here. ' For example: ' Dim x As Object ' MsgBox(x.ToString)
In the
Catch
block, use theMy.Application.Log.WriteException
method to write the exception information.My.Application.Log.WriteException(ex, TraceEventType.Error, "Exception in ExceptionLogTest " & "with argument " & fileName & ".")
The following example shows the complete code for logging a handled exception.
Public Sub ExceptionLogTest(ByVal fileName As String) Try ' Code that might generate an exception goes here. ' For example: ' Dim x As Object ' MsgBox(x.ToString) Catch ex As Exception My.Application.Log.WriteException(ex, TraceEventType.Error, "Exception in ExceptionLogTest " & "with argument " & fileName & ".") End Try End Sub
To log an unhandled exception
Have a project selected in Solution Explorer. On the Project menu, choose Properties.
Click the Application tab.
Click the View Application Events button to open the Code Editor.
This opens the ApplicationEvents.vb file.
Have the ApplicationEvents.vb file open in the Code Editor. On the General menu, choose MyApplication Events.
On the Declarations menu, choose UnhandledException.
The application raises the UnhandledException event before the main application runs.
Add the
My.Application.Log.WriteException
method to theUnhandledException
event handler.My.Application.Log.WriteException(e.Exception, TraceEventType.Critical, "Application shut down at " & My.Computer.Clock.GmtTime.ToString)
The following example shows the complete code for logging an unhandled exception.
Private Sub MyApplication_UnhandledException( ByVal sender As Object, ByVal e As ApplicationServices.UnhandledExceptionEventArgs ) Handles Me.UnhandledException My.Application.Log.WriteException(e.Exception, TraceEventType.Critical, "Application shut down at " & My.Computer.Clock.GmtTime.ToString) End Sub