更新:2007 年 11 月
将异常信息写入应用程序的日志侦听器中。
' Usage
My.Application.Log.WriteException(ex)
My.Application.Log.WriteException(ex ,severity ,additionalInfo)
My.Application.Log.WriteException(ex ,severity ,additionalInfo ,id)
' Web usage
My.Log.WriteException(ex)
My.Log.WriteException(ex ,severity ,additionalInfo)
My.Log.WriteException(ex ,severity ,additionalInfo ,id)
' Declaration
Public Sub WriteException( _
   ByVal ex As System.Exception _
)
' -or-
Public Sub WriteException( _
   ByVal ex As System.Exception, _
   ByVal severity As System.Diagnostics.TraceEventType, _
   ByVal additionalInfo As String _
)
' -or-
Public Sub WriteException( _
   ByVal ex As System.Exception, _
   ByVal severity As System.Diagnostics.TraceEventType, _
   ByVal additionalInfo As String, _
   ByVal id As Integer _
)
参数
- ex 
 必选。要记录的异常。
- severity 
 消息的类型。默认情况下,类型为 Error。
- additionalInfo 
 要追加到消息中的字符串。默认情况下,这是一个空字符串。
- id 
 消息标识符,通常用于相关性。默认情况下,它与“备注”部分的表中描述的 entryType 相关。
异常
以下情况将会导致异常:
- 异常或消息类型为 Nothing (ArgumentNullException)。 
- 消息类型不是 TraceEventType 枚举值之一 (InvalidEnumArgumentException)。 
- 具有部分信任的代码调用该方法,但是写入到需要完全信任的事件日志侦听器 (SecurityException)。 
备注
WriteException 方法将异常中包含的信息写入应用程序的事件日志侦听器。
在客户端应用程序中,可以通过 My.Application.Log 对象使用 Log 对象。在 Web 应用程序中,可以通过 My.Log 对象使用 Log 对象。
若要了解哪些日志侦听器接收 WriteException 方法的消息,请参见演练:确定 My.Application.Log 写入信息的位置。您可以更改默认的日志侦听器。有关更多信息,请参见使用 Application 日志 (Visual Basic)。
对于没有采用 id 参数的重载,将按照下表定义写入日志的标识符。
| severity | 默认的 id | 
|---|---|
| 0 | |
| 1 | |
| 2 | |
| 3 | |
| 4 | |
| 5 | |
| 6 | |
| 7 | |
| 8 | |
| 9 | 
任务
下表列出了涉及 WriteException 方法的任务的示例。
| 要执行的操作 | 请参见 | 
|---|---|
| 将异常信息写入应用程序的事件日志侦听器中。 | |
| 确定 Log 写入信息的位置。 | 
示例
此示例演示如何使用 My.Application.Log.WriteException 方法记录异常。取消注释 Dim 和 MsgBox 行,即可引发 NullReferenceException 异常。有关更多信息,请参见如何:在 Visual Basic 中记录异常。
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
此代码示例只能在客户端应用程序中运行。对于 Web 应用程序,则将 My.Application.Log.WriteException 更改为 My.Log.WriteException。
要求
命名空间:Microsoft.VisualBasic.Logging
类:Log
**程序集:**Visual Basic 运行库(在 Microsoft.VisualBasic.dll 中)
不同项目类型的可用性
| 项目类型 | 是否可用 | 
|---|---|
| Windows 应用程序 | 是 | 
| 类库 | 是 | 
| 控制台应用程序 | 是 | 
| Windows 控件库 | 是 | 
| Web 控件库 | 否 | 
| Windows 服务 | 是 | 
| 网站 | 是 | 
权限
可能需要下列权限:
| 权限 | 说明 | 
|---|---|
| 控制访问文件和文件夹的能力。关联的枚举:Unrestricted。 | 
请参见
任务
演练:确定 My.Application.Log 写入信息的位置
概念
使用 Application 日志 (Visual Basic)