vbs 中怎么用错误处理?

来源:百度知道 编辑:UC知道 时间:2024/06/27 08:13:23
Err.Raise 可以产生一个错误出来,不过要如何截取这个错误?
使用on error goto 语句么?具体怎么实现的?

比如说

do
...
if a = false then Err.Raise(1)
...
loop until b

要求不断的执行一段代码,直到达到目标(b=true),或错误发生(a=false)
当错误发生的时候,我要执行一段错误代码

要怎么达到这个目标??回答好的有加分,谢了
简单的来说,就是执行一段代码,当err发生的时候就马上重新执行这段代码,在有err就在重新执行,以此类推

那if语句不要多的吓死人了。。。太麻烦了。。。没有别的办法了么?

这样如何:
先把代码分为一段一段,一句代码当做一段,如果有if语句,就把if语句块作为一段等等。
在分好段的每段代码前加"case 标号:",标号从1开始取,依次递增。
然后在最前面加select case caseStep,在最后面加end select。
由于执行完一个case后的语句后,会跳到end select后面,所以可以在这里加上错误判断,没错误的话caseStep自加1,超过最大值跳出,有错的话,就不加1,之后循环到select case处。示例代码如下,这里假设代码有4段
on error resume next
const N = 4
caseStep = 1

do while true

select case caseStep
case 1: msgbox "step 1"
case 2:
if caseStep = 2 then
msgbox "true"
else
msgbox "false"
end if
case 3: msgbox "step 3"
case 4: msgbox "step 4"
end select

if err.Number > 0 then
err.clear
elseif caseStep = N then
exit do
else
caseStep = caseStep + 1
end if

loop

MsgBox "Done"