可以使用 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 & ".")
记录未经处理的异常
在**“解决方案资源管理器”中选择一个项目。 在“项目”菜单上,选择“属性”**。
单击**“应用程序”**选项卡。
单击**“查看应用程序事件”**按钮打开代码编辑器。
此操作将打开 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)
示例
此示例演示用于记录已处理异常的完整代码。
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
下一示例演示用于记录未经处理的异常的完整代码。 可以使用**“项目设计器”**来访问代码编辑器中的应用程序事件。 有关更多信息,请参见 如何:处理应用程序事件 (Visual Basic)。
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
请参见
任务
演练:确定 My.Application.Log 写入信息的位置 (Visual Basic)
演练:更改 My.Application.Log 写入信息的位置 (Visual Basic)
参考
Microsoft.VisualBasic.Logging.Log