我想记录在执行我的应用程序期间发生的异常。在此之前我用消息框处理它。我是VB 6的新手。
请提供一些示例代码来创建日志文件并保存异常消息。
谢谢..
答案 0 :(得分:7)
您需要使用On Error Goto
处理错误处理程序,以便在发生错误时执行自己的代码。 (在VB6中BTW称为错误而不是异常。)免费工具MZTools非常好 - 它可以自动插入On Error Goto
并出错处理程序,包含当前例程的名称。
您还需要一个将错误详细信息记录到文件的常规例程,如下所示。健康警告 - 我直接在没有测试的情况下直接输入(air code)。
Sub MySub()
On Error Goto ErrHandler
'... Do something ...'
On Error Goto 0
Exit Sub
ErrHandler:
Call LogError("MySub", Err, Error$) ' passes name of current routine '
End Sub
' General routine for logging errors '
Sub LogError(ProcName$, ErrNum&, ErrorMsg$)
On Error Goto ErrHandler
Dim nUnit As Integer
nUnit = FreeFile
' This assumes write access to the directory containing the program '
' You will need to choose another directory if this is not possible '
Open App.Path & App.ExeName & ".log" For Append As nUnit
Print #nUnit, "Error in " & ProcName
Print #nUnit, " " & ErrNum & ", " & ErrorMsg
Print #nUnit, " " & Format$(Now)
Print #nUnit
Close nUnit
Exit Sub
ErrHandler:
'Failed to write log for some reason.'
'Show MsgBox so error does not go unreported '
MsgBox "Error in " & ProcName & vbNewLine & _
ErrNum & ", " & ErrorMsg
End Sub
奖金建议:roll your own stack trace。
奖金建议2:使用here中的If Not IsInIDE() Then On Error Goto Handler
函数关闭IDE中的错误处理程序IsInIDE