VB6: ist "On Error Goto 0" die Fehlerbehandlung der aufrufenden Funktion?
Wenn On Error Goto 0
genannt wird, in einem VB6-Sub, wird dieser Schalter deaktiviert die Fehlerbehandlung selbst wenn die Kontrolle geht zurück an die aufrufende Funktion/Sub?
EDIT: Wenn ich die Ausgabe in einem error-handler-block, der zeigt ein Fehler-Nummer 0, was bedeutet, dass an?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht. Die VB6-Handbuch macht es klar, dass
On Error Goto 0
betrifft nur das gegenwärtige Verfahren:BEARBEITEN gibt Es jetzt eine Ergänzung zu der Frage, die war nicht da, als ich gepostet diese Antwort. Die Frage ist "Wenn ich die Ausgabe in einem error-handler-block, der zeigt ein Fehler-Nummer 0, was bedeutet, dass an?". Für die Antwort siehe Mike ' s Antwort.
Nicht.
http://www.vb-helper.com/tut6.htm
Dies bedeutet, dass die
Err
Objekt nicht enthalten Fehlerinformationen an die Stelle im code, wo Sie überprüft dieErr.Number
Eigenschaft. Dafür kann es verschiedene Gründe:Err
Objekt wurde explizit gelöscht durch einen vorherigen AufrufErr.Clear
Err
Objekt gelöscht wurde, durch den AufrufOn Error Goto
. EinOn Error Goto
- Anweisung löscht die aktuelleErr
ObjektErr
Objekt wurde gelöscht durch einResume X
- Anweisung. Im Gegensatz zu einer normalenGoto X
Anweisung, eineResume
wird klar, dass die aktuelleErr
Objekt (und ein Fehler ausgelöst, der seine eigene, wenn dieErr
Objekt war bereits leer)Haben Sie vergessen, verlassen Sie die aktuelle
Sub
/Function
/Property
vor erreichen der error-handler, zum Beispiel:Dies ist ein ziemlich häufiger Fehler in meiner Erfahrung. Wenn Sie nicht explizit beenden Sie die routine vor dem erreichen der error-handler-label, den code in der error-handler wird immer noch ausgeführt werden, auch wenn keine Fehler auftreten. In diesem Fall
Err.Number
wird 0 sein, da kein Fehler aufgetreten ist.