Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

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

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

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

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.