如何:在 Visual Basic 中记录异常
可以使用 My.Application.Log
和 My.Log
对象来记录有关应用程序中所发生异常的信息。 这些示例演示如何使用 My.Application.Log.WriteException
方法来记录显式捕获的异常和未处理的异常。
若要记录跟踪信息,请使用 My.Application.Log.WriteEntry
方法。 有关详细信息,请参阅 WriteEntry
记录已处理的异常
创建将生成异常信息的方法。
Public Sub ExceptionLogTest(ByVal fileName As String) End Sub
使用
Try...Catch
块捕获该异常。Try Catch ex As Exception End Try
将可能生成异常的代码置于
Try
块中。取消注释
Dim
和MsgBox
行,导致 NullReferenceException 异常。' Code that might generate an exception goes here. ' For example: ' Dim x As Object ' MsgBox(x.ToString)
在
Catch
块中,使用My.Application.Log.WriteException
方法写入异常信息。My.Application.Log.WriteException(ex, TraceEventType.Error, "Exception in ExceptionLogTest " & "with argument " & fileName & ".")
下面的示例演示用于记录已处理的异常的完整代码。
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
记录未处理的异常
在 “解决方案资源管理器” 中选择一个项目。 在 “项目” 菜单上,选择 “属性” 。
单击“应用程序” 选项卡。
单击“查看应用程序事件” 按钮,打开“代码编辑器”。
此时将打开 ApplicationEvents.vb 文件。
在“代码编辑器”中打开 ApplicationEvents.vb 文件。 在“常规” 菜单上,选择“MyApplication 事件” 。
在“声明”菜单上,选择“UnhandledException”。
在主应用程序运行之前,应用程序将引发 UnhandledException 事件。
将
My.Application.Log.WriteException
方法添加到UnhandledException
事件处理程序。My.Application.Log.WriteException(e.Exception, TraceEventType.Critical, "Application shut down at " & My.Computer.Clock.GmtTime.ToString)
下面的示例演示用于记录未处理的异常的完整代码。
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