Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

kann mir einer erklären, warum die zweite Prüfung den Fehler trotzdem wirft und NICHT zu ENDE2 springt?

Vielen Dank

Private Sub TEST()

    On Error GoTo ENDE

    If Not CBool("TEST") Then

        Exit Sub

    End If

ENDE:

    On Error GoTo ENDE2

    If Not CBool("TEST2") Then

        Exit Sub

    End If

ENDE2:

End Sub

Geschrieben
warum die zweite Prüfung den Fehler trotzdem wirft und NICHT zu ENDE2 springt?

das ist "by design".

wenn der zweite error geworfen wird, ist der erste errorhandler noch aktiv, demzufolge kann schon aus prinzip der zweite error nicht behandelt werden.

dein code ist IMO schlechtes design.

s'Amstel

Geschrieben

Laufzeitfehler 13 (Typen unverträglich) kommt.

Das mit dem schlechten Design ist schon klar. Mir gehts hier um die Theorie. Ich würde gern verstehen, was da im Hintergrund passiert.

Was heißt Fehler noch aktiv? Wenn ich Err.Clear aufrufe, tritt beim zweiten Mal der Fehler immer noch auf. Oder anders: Wie deaktiviere ich dann den Fehler? (Geht das nur über Resume?)

DANKE

Geschrieben
Laufzeitfehler 13 (Typen unverträglich) kommt.

das erscheint logisch, ein CBool auf einen String macht IMO keinen sinn.

Die CBool-Funktion wandelt einen Ausdruck in den Datentyp Boolean um. Der Ausdruck muß dabei als numerischer Wert interpretiert werden können, sonst tritt ein Laufzeitfehler auf. Ist der Wert 0, dann wird False zurückgegeben, andernfalls True.

Geht das nur über Resume?

AFAIR ja. der errorhandler ist insofern noch aktiv, als dass du u.u. zwar Err.Clear aufrufst, der interpreter aber noch immer nach der marke ENDE steht. erst wenn mit resume die fehlerbehandlung beendet wird, können weitere fehler behandelt werden.

s'Amstel

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...