我可以在vbscript中抛出错误吗?

时间:2010-12-21 19:33:25

标签: vbscript error-handling

我习惯用C#编程,这显然有一些非常强大的错误处理。现在我正在开发VBScript中的一个简短项目。我已经阅读了使用“On Error _______”和Err全局变量的VBscript的错误处理。

但是,有什么方法可以产生我自己的错误吗?例如,如果我的一个函数传递了错误类型的参数,那么我宁愿我的脚本在那时失败,然后尝试继续。

3 个答案:

答案 0 :(得分:31)

是的,你可以。使用Err.Raise方法,例如:

Err.Raise 5 ' Invalid procedure call or argument

有关VBScript标准错误代码的列表,请参阅Errors (VBScript)

答案 1 :(得分:22)

虽然@helenanswer是正确的,但它有点稀疏。

它详细介绍了Err.Raise()方法,但忽略了一些关键点。

  

来自original question
  但是,有什么方法可以生成我自己的错误吗?例如,如果我的一个函数传递了错误类型的参数,我宁愿我的脚本在那时失败然后尝试继续。

Err.Raise()非常通用,它可以抛出现有的异常(如前所述),但它也可以抛出全新的用户定义异常。

Call Err.Raise(vbObjectError + 10, "My Application", "My custom error message")

vbObjectError -2147221504是一个内置的VBScript常量,用于定义引发用户定义错误的边界。

答案 2 :(得分:2)

C#try-catch-finally

try {
    // some code
} catch( Exception e ) {
    // error handler
} finally {
    // clean up things
}

等效的VBScript

on error resume next
' some code
if( Err.number <> 0 ) then
    ' error handler -- you can use Err.raise() here to display your own errors
    Err.clear()
else
    ' clean up things
end if
on error goto 0

对于好的VBScript示例,您可以查看ASP Xtreme Evolution project