2009-05-13 3 views

Antwort

4

On Error Resume Next: Wenn es eine Ausnahme im Programm ist, es einfach ignorieren und mit der nächsten Anweisung fortgesetzt. Als sehr schlecht und hässlich, und das ist meiner Meinung nach richtig. Es ist wie ein großes mit:

try 
{ 
    // your code 
} 
catch 
{ 
    // nothing! muhaha 
} 

in jeder Methode des Codes (oder noch schlimmer, um das ganze Programm).

Bei Fehler auf 0: Deaktiviert alle Fehlerbehandlungsroutinen, die in der aktuellen Prozedur definiert sind. Es ist wie mit einem großen Versuch, den Code zu umgehen, der deaktiviert wird, sobald er diese Zeile erreicht.

Weitere Informationen finden Sie unter MSDN.

+2

+1 Ja. Ich habe gerade folgendes entdeckt: Wenn Sie On Error Goto 0 verwenden, wird jede andere On Error-Anweisung in der Prozedur deaktiviert. Das war völlig unerwartet. Ich dachte, dass in der Dokumentation steht, dass nur der zuletzt ausgeführte Fehlerhandler deaktiviert ist. Ich erwartete, dass, wenn der Code einen anderen Fehlerhandler erreicht, dass es wieder aktiviert wäre, aber es nicht ist. – authentictech

3

Bei Fehler go to nimmt der Ausführungscode eine bestimmte Codebuchmarkierung, die auf der Seite definiert ist. Dies ist nützlich, wenn Sie etwas durchführen möchten, falls ein Fehler auftritt.

Bei einem Fehler setzt sich der nächste Schritt mit dem nächsten Code der Ausführung nach dem fehlerhaften Code fort. Im Grunde ignoriert den Fehler und fährt mit dem Code fort. Dies ist besonders nützlich, wenn Sie 100s von Datensätzen verarbeiten und nicht möchten, dass der Code die Ausführung stoppt, wenn ein Datensatz einen Fehler auslöst.

3

on error resume next bedeutet nur, dass den Fehler ignorieren und fortsetzen nächsten on error goto 0 bedeutet, den Lebenslauf auf Fehler zu beenden nächsten Sie auch diese

 <% 
     on error resume next '<-- This code will resume and continue executing the code if there is an error 



'YOUR CODE HERE 

if err.number > 0 then '<-- This code will look if there are any errors (even if resumed) 
' or use If Err.Number <> 0 Then 


     'DO SOMETHING IF ERROR 
    %> 
     Error Number <%= Err.Number %><BR> 
     Error Description <%= Err.Description %><BR>   
     Source <%= Err.Source %><BR> 

     LineNumber <%= Err.Line %><BR> 

     <%end if%> 
+1

Dadurch wird ein Syntaxfehler ausgelöst, sodass die Laufzeitfehlerbehandlung nicht veranschaulicht werden kann. –

+1

@ Ekkehard.Horner Yup, ich habe es bearbeitet. Danke für die Notiz :-) – compcobalt

1
tun können

Ich habe „Lauf“ zu verwenden, Do Loops classic bauen ASP-Fehlerhandler, die mehrere Codezeilen und mehrere Fehlerfälle abgedeckt haben. Diese Technik beruht auf (kompensiert?) Die Verwendung von "On Error Resume Next" durch Ausbrechen aus der Schleife, sobald ein Fehler auftritt, dann Testen und Reagieren auf Fehlerklassen in einem nachfolgenden Fehlerbehandlungscode. Beachten Sie, dass Sie, da die Unterbrechung in einer Schleife in der gleichen Funktion wie die Schleife auftritt, immer noch den Kontext (Variablen) haben, die bei der Ausführung der Schleife festgelegt wurden. Daher sollte Ihr Fehlerhandler diesen Kontext verwenden, um intelligente Fehler zu protokollieren und zu bereinigen auf irgendwelche Verweise wie angemessen.

Überprüfen Sie die Antwort "Larry" zu einer ähnlichen Frage für ein kurzes Beispiel dafür.
How to handle errors in VB Script

Verwandte Themen