2012-01-09 12 views
2

私たちが持っている古いレガシー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 

が例外を投げ続け、そして私はそれがエラーに当たったとき実行しているのではなく、停止維持するコードが必要です。これどうやってするの?

答えて

5

、エラーを無視し、それらを引き起こす可能性が一部前On Error Resume Nextを追加するため。 「次のレジューム」の効果を無効にするには、On Error Goto 0を使用します。

+0

VBScriptのエラートラップの詳細については、ASP Freeで記事を読むことができます。 http://www.aspfree.com/c/a/Windows-Scripting/Error-Trapping-and-Capturing-ThirdParty-Output-in-WSH/ – Nilpo

3

コードを実行し続けるためにすばやく(非常に)汚い方法を使用する場合は、ファイルの先頭にOn Error Resume Nextを追加すると、エラーが発生したときにうまく実行されます。

2

私はこの技術で少し練習しましたが、AFAIK vbscriptには実行時例外を処理する方法が1つしかありません:On Error Resume Next

あなたはこれらの記事を読むことができます:MSDN articleとは、より有用私はabout handling and notifying.