vbScript on error resume next容错使用心得
作者 佚名
来源 ASP编程
浏览
发布时间 2013-07-09
复制代码 代码如下: If err.number<>0 then errNum = Err.Number errDesc = Err.Description Call G00B02logOut("Error.002", errNum ,errDesc ) End If If err.number<>0 then errNum = Err.Number errDesc = Err.Description Call G00B02logOut("Error.002", errNum ,errDesc ) End If 这样可以捕获到错误代码和错误的描述信息,并写入日志文件。然 而,有个问题是,在我们捕获了这个错误之后的代码,如果再出现错误而你没有捕获的话,代码仍然会忽略错误继续运行。忽略错误是我们不希望看到的结果,将导致程序调试困难。此时可以使用 On Error GoTo 0 这句来终止前面错误处理,即可以和on error resume next 成对出现。这样就不会影响后面的代码了。 复制代码 代码如下: on error resume Next 。。。 ''DB operate。。 。。。 If err.number<>0 then errNum = Err.Number errDesc = Err.Description Call G00B02logOut("Error.002", errNum ,errDesc ) End If On Error Goto 0 on error resume Next 。。。 ''DB operate。。 。。。 If err.number<>0 then errNum = Err.Number errDesc = Err.Description Call G00B02logOut("Error.002", errNum ,errDesc ) End If On Error Goto 0 有几个特点需要了解, 1,on error resume Next如果在全局定义,则作用是全局的,你在主程序中使用了这一句,后面如果调用了一个函数,那么函数中如果有错误,也将被忽略,你在主程序中函数调用的语句后面也可以捕获到这个错误,这一点可以通过下面简单的代码验证: 复制代码 代码如下: On error resume Next funcb ‘调用函数 If err.Number <> 0 Then errNum = Err.Number errDesc = Err.Description WScript.Echo errNum & " - " & errDesc End If WScript.Echo "main ...." ''On Error Goto 0 Sub funcb aaaaaaaaaaa ''测试用的无效语句 WScript.Echo "funcb ok" If err.Number <> 0 Then errNum = Err.Number errDesc = Err.Description WScript.Echo errNum & " - " & errDesc End If End On error resume Next funcb ‘调用函数 If err.Number <> 0 Then errNum = Err.Number errDesc = Err.Description WScript.Echo errNum & " - " & errDesc End If WScript.Echo "main ...." ''On Error Goto 0 Sub funcb aaaaaaaaaaa ''测试用的无效语句 WScript.Echo "funcb ok" If err.Number <> 0 Then errNum = Err.Number errDesc = Err.Description WScript.Echo errNum & " - " & errDesc End If End 执行以上代码的结果: 13 - 型が一致しません。 main .... 可以看出,在函数中,aaaaaaaaaaa是故意制造的一个错误,其后的WScript.Echo "funcb ok"以及后面的代码都没有执行。但是,主程序中的WScript.Echo "main ...."语句是执行了的。就是说,在函数中如果某个语句出错,函数中后面的语句都不执行,直接执行调用函数的语句后面的语句。 2,On error resume Next如果在函数内定义,看下面的代码执行情况 复制代码 代码如下: funcb ‘函数调用 If err.Number <> 0 Then errNum = Err.Number errDesc = Err.Description WScript.Echo errNum & " - " & errDesc End If WScript.Echo "main ...." Sub funcb ‘函数定义 On error resume Next aaaaaaaaaaaa ''无效语句 WScript.Echo "funcb ok" If err.Number <> 0 Then errNum = Err.Number errDesc = Err.Description WScript.Echo errNum & " - " & errDesc End If End Sub funcb ‘函数调用 If err.Number <> 0 Then errNum = Err.Number errDesc = Err.Description WScript.Echo errNum & " - " & errDesc End If WScript.Echo "main ...." Sub funcb ‘函数定义 On error resume Next aaaaaaaaaaaa ''无效语句 WScript.Echo "funcb ok" If err.Number <> 0 Then errNum = Err.Number errDesc = Err.Description WScript.Echo errNum & " - " & errDesc End If End Sub 执 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于vbScript on error resume next容错使用心得的所有评论