以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  [求助] VBS里面有异常处理机制吗?  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=31022)

--  作者:chenwc
--  发布时间:2012/11/30 11:18:42
--  [求助] VBS里面有异常处理机制吗?
添加的自定义函数,在运行的过程中,如果出现异常,能不能进行捕获处理,而不是终止执行?
--  作者:Marcus
--  发布时间:2012/11/30 11:43:58
--  
 搭车同问,我有一个写日志的函数,但日志文件跟别的程序冲突导致VBS引擎中断。求解决方案,及时冲突也可以跳过错误,千万别让VBS引擎中断。


Sub SetSignalSystemOK(sTime)
    file = "Z:\\SystemOK.log"
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set a = fs.OpenTextFile(file, 2, True)
    a.WriteLine(sTime)
    a.Close
End Sub

出错在Set a = fs.OpenTextFile(file, 2, True)这句,可能是别的程序刚好在访问这个文件。
--  作者:Marcus
--  发布时间:2012/11/30 11:49:47
--  
 补充一点,当时对话框弹出的错误值好像是70,也就说访问这个文件时没有权限。

运气不好,跑了2个月就今天出现了一次。

--  作者:王锋
--  发布时间:2012/11/30 12:22:41
--  
描述
启动错误处理程序。
语法
On Error Resume Next
说明
若不使用 On Error Resume Next 语句,发生的任何运行时错误都将是致命的,即,显示错误信息并终止运行。

On Error Resume Next 会使程序从紧随产生错误的语句之后的语句继续执行,或是从紧随最近一次调用过程(该过程含有 On Error Resume Next 语句)的语句继续运行。这个语句可以不顾运行时错误,继续执行程序,之后您可以在过程内部建立错误处理例程。在调用另一个过程时,On Error Resume Next 语句变为非活动的。所以,如果希望在例程中进行内部错误处理,则应在每一个调用的例程中执行 On Error Resume Next 语句。


--  作者:Marcus
--  发布时间:2012/11/30 12:27:33
--  
 谢谢楼上!