VBScript-使用错误处理

时间:2020-03-06 14:58:37  来源:igfitidea点击:

我想使用VBScript捕获错误并记录错误(即发生错误"记录某些内容"),然后恢复脚本的下一行。

例如,

On Error Resume Next
'Do Step 1
'Do Step 2
'Do Step 3

当第1步发生错误时,我希望它记录该错误(或者使用它执行其他自定义功能),然后在第2步继续执行。这可能吗?以及如何实施呢?

编辑:我可以做这样的事情吗?

On Error Resume myErrCatch
'Do step 1
'Do step 2
'Do step 3

myErrCatch:
'log error
Resume Next

解决方案

VBScript没有引发或者捕获异常的概念,但是运行时提供了一个全局Err对象,该对象包含最后执行的操作的结果。我们必须在每次操作后显式检查Err.Number属性是否为非零。

On Error Resume Next

DoStep1

If Err.Number <> 0 Then
  WScript.Echo "Error in DoStep1: " & Err.Description
  Err.Clear
End If

DoStep2

If Err.Number <> 0 Then
  WScript.Echo "Error in DoStop2:" & Err.Description
  Err.Clear
End If

'If you no longer want to continue following an error after that block's completed,
'call this.
On Error Goto 0

Visual Basic和应用程序的Visual Basic(VBA)支持"错误时转到[标签]"语法,但是VBScript不支持此语言功能,因此我们必须如上所述使用"错误时继续"。