On Error Resume Next不会捕获vbscript中的SQL Server错误

时间:2013-05-23 10:57:46

标签: vbscript qtp

我有一段我在QTP中运行的vbscript代码

objRecordSet.Open "select regn_code from region where regn_code  ='" & rCode & "'",objConnection 
    On Error Resume Next
     If Err.Number <> 0  Then
             Reporter.ReportEvent micFail,"Error in " & module,"" & ErrObject.Description
         End If

     On error goto 0

rCode是Database中的数值。当在QTP中将rCode值作为varchar提供,例如'er'时,SQL服务器会抛出一个错误 无效的列名'er'停止我的QTP AUT。

我想知道为什么'On Error Resume Next'无法处理此错误。任何建议都会有帮助。作为一种解决方法,我只是试图跳过这个SQL查询,如果rCode是非数字的。

1 个答案:

答案 0 :(得分:3)

在我看来,你的“解决方法” - 如果没有合适的参数则不执行SQL - 是正确的解决方案。

如果要禁用.Open行的正常错误捕获,OERN必须先行:

On Error Resume Next
objRecordSet.Open "select regn_code from region where regn_code  ='" & rCode & "'",objConnection 
...