1. 多文档循环出错处理,要求一份文档出错的话自动转到下一份文档运行,不会出错中止:
set doc=view.getfirstdocument
while not (doc is nothing)
on error goto ErrorHandle
Expression 1;
Expression 2;
......
nextdoc:
set doc=view.getnextdocument(doc)
wend
ExitPoint
exit sub
ErrorHandle:
goto nextdoc
以上的语句如果在循环中出错的话,第一个出错文档可以捕捉到,并自动转到下一份文档,但如果有第二份出错的话就会自动报错中止运行了,比如(Type mismatch). 请问要如何处理, 我尝试过在 ErrorHandle 处加上一个
Error=True
Resume Next
来代替 Goto NextDoc, 但是这样好像在循环内部执行语句时每次都要判断一下Error是否为True,里面有机会出错的地方比较多,难道每次都要判断一下?有没有更好的办法呢?
2. 我们的系统里面有一些DB中的部分设计元素是从一个定制模板中继承的, 并不是自动从数据库的模板中继承(假设 DB的标准模板是DB Temp,但是里面有些Script Library ,Agent ,SubForm, Form是从DB Customization中继承的,DB Temp中并不包含这些元素).我现在想把这些元素删除掉,我从定制的模板DB Customization当中把元素删除,然后再刷新这些DB,怎么一个元素都没去掉呢?请问要如何处理,有一百多个DB哦,我可不想一个个去手动删除啊.
------解决方案--------------------
居然还在用 goto....
写一个代理批处理一下把
------解决方案--------------------
关于第一个问题,是否可以尝试用
Example: Resume statement
Sub ResumeSub()
On Error GoTo ErrHandler
' ...
Error 1 ' Intentionally raise an error.
Error 10
Error 100
' ...
Exit Sub
ErrHandler: ' Error-handling routine
Print "Error " & Err & " at line number " &Erl
Resume Next ' Resume the procedure.
End Sub
' The error-handling routine prints information about the
' current error. Then LotusScript resumes execution of the
' script at the statement following the statement that caused
' the current error.
------解决方案--------------------
set doc=view.getfirstdocument
在你定义的view中用视图选择公式筛选出会出错的文档,
这样循环体内根本就用不着判断