on error resume next 起的作用是block级的,并不是全局的。
例:
function Foo()
on error resume next
b = 1/0 '这里产生异常会继续执行下面的代码
a = "ddd"
end function
call Foo()
a = 1/0 '由于在全局范围内没有on error resume next,所以这里产生异常会中断执行。
Sub1中有on error resume next语句,Sub2没有,当Sub1内部代码调用Sub2时,如果Sub2中产生异常,也不会中断执行。
虽然on error resume next的作用不是全局的,err对象却是一个全局的对象。
如果 err.number <> 0,那么表示错误发生。
clear方法的说明。在使用on error resume next时会自动调用clear方法,但 exit sub、exit function 不会自动调用clear方法。所以如果异常发生,就要执行 exit sub、exit function 之前要调用clear方法,除非你是特意的。
相关阅读
