在VBScript中处理错误?
问题描述:
我们有一些旧的传统VBScript代码需要某种错误处理。以前从未使用过vbscript,我完全失败。下面是代码:在VBScript中处理错误?
set objBL = CreateObject("SQLXMLBulkLoad.SQLXMLBulkload.4.0")
objBL.ConnectionString = "connectionstring"
objBL.KeepIdentity = false
objBL.ErrorLogFile = "E:\code\Acquity\WebOrderImport\logs\error.log"
Set fso = CreateObject("Scripting.FileSystemObject")
Set parentfolder = fso.GetFolder("E:\textdata\Acquity\AcquityWebOrders")
Set logfile = fso.OpenTextFile("E:\code\Acquity\WebOrderImport\logs\import.log",8)
count = 0
For each folder in parentfolder.subfolders
logfile.writeline count & " files"
logfile.writeline "Processing " & folder.name & " ***********************************" & now()
count = 1
For Each file in folder.files
If left(file.name,6) = "Order_" then
If left(file.name,13) = previous then
logfile.writeline "!!!!! SKIPPING file " & file.name & "!!!!! DUPED ORDER ID"
Else
logfile.writeline "reading " & file.name
objBL.Execute "E:\code\Acquity\WebOrderImport\acq_WebOrder_import.xsd", file.path
count=count+1
End If
previous = left(file.name,13)
End If
Next
Next
set objBL=Nothing
logfile.writeline "Done!"
Set logfile = nothing
Set parentfolder = nothing
set fso = nothing
我敢肯定,这条线:
bjBL.Execute "E:\code\Acquity\WebOrderImport\acq_WebOrder_import.xsd", file.path
不断抛出异常,而我需要的代码继续运行,当它击中了错误,而不是停止。我怎样才能做到这一点?
答
要忽略的错误,这会导致其部分前加On Error Resume Next
。要禁用“resume next”的效果,请使用On Error Goto 0
。
答
为了让代码保持运行的快速和非常肮脏的方式,您可以将On Error Resume Next
添加到文件的顶部,并且当它遇到错误时执行将会愉快地继续。
答
我对这项技术有一点实践,但AFAIK vbscript只有一种方法来处理运行时异常:On Error Resume Next
。
你可以阅读这些文章:MSDN article,更有助于我about handling and notifying.
通过在ASP Free上阅读我的文章,您可以在VBScript中了解更多关于错误陷印的信息。 http://www.aspfree.com/c/a/Windows-Scripting/Error-Trapping-and-Capturing-ThirdParty-Output-in-WSH/ – Nilpo 2012-01-10 17:11:28