2012-11-29 14 views

Odpowiedz

7

Ty może zrobić - nawet bez linii OEG0 - ale nie należy, ponieważ skrypt będzie nadal wykonywać linie we. .. last, nawet jeśli błąd w linii i-1 unieważnia wszystkie twoje założenia o koniecznych warunkach wstępnych akcji w tych liniach. Twoja strategia jest porównywalna do jazdy z zamkniętymi oczami, aby uniknąć oślepienia przez reflektory innych samochodów.

Jeśli nie można zrobić lokalnie resticted obsługi błędów dla wybranych działań -

... 
On Error Resume Next 
    risky_action 
    save Err 
On Error GoTo 0 
If ErrorOccurred Then 
    something sensible 
    If can't continue Then 
     WScript.Quit 4711 
    End If 
End If 
... 

spróbować uciec z

Sub Main() 
    ... you 500 lines ... 
End Sub 

On Error Resume Next 
    Main 
    If Err.Number Then 
    WScript.Echo "aborted" 
    WScript.Quit 4711 
    End If 

Takie podejście zapewnia, że ​​linie po błędzie nie będzie być straconym.

+2

Czy jesteś rodzajem boga VBS? –

+1

@ JonathanRioux - nie, ponieważ wtedy utworzyłbym VBScript, aby wszelkiego rodzaju błędy były niemożliwe. –

+0

To cholernie prawdziwe! Jesteś tylko kolejnym facetem? –