An eine bestimmte stelle springen

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von SmaSh-MaN2k.

    An eine bestimmte stelle springen

    Hey all,

    hab mal ne frage habe einen try-catch block in meiner funktion, wenn nun ein fehler im try-catch block auftritt soll das programm an eine bestimmte stelle in einer sub springen, ist das irgendwie möglich ?
    mit "Goto" kann man ja nur innerhalt der prozedur springen, das geht leider nicht aus der funktion in eine prozedur...

    gibts da möglichkeiten ?

    mfg und danke
    Vergiss mal GoTo ganz schnell.

    Zeig mal etwas Code, dann helfen wir dir weiter.

    Grundsätzlich ists möglich.

    Hier mal ein kleines Beispiel, wie das gehen "KÖNNTE"

    VB.NET-Quellcode

    1. Public Function Funktion1()
    2. Try
    3. 'mach irgendwas
    4. Catch ex As InvalidCastException
    5. Fehlerbehandlung("InvalidCastException")
    6. 'eventuelle rückgabe nach dem aufruf von Fehlerbehandlung
    7. Catch ex As Exception
    8. Fehlerbehandlung("Sonstige")
    9. 'eventuelle rückgabe nach dem aufruf von Fehlerbehandlung
    10. End Try
    11. 'weiterer Code
    12. End Function
    13. Public Sub Fehlerbehandlung(ByVal err As String)
    14. Select Case err
    15. Case "InvalidCastException"
    16. 'Code, der bei Invalidcastexception ausgeführt wird
    17. Case "Sonstige"
    18. 'Code bei sonstiger Fehlermeldung
    19. Case Else
    20. 'Irgend eine andere Ausführung der als Parameter übergeben wurde, als InvalidCastException oder Sonstige
    21. End Select
    22. End Sub


    Das ist ein Beispiel, wie du speziell etwas ausführen willst, wenn eine bestimmte Fehlermeldung gekommen ist.
    So oder so ähnlich könntest du hin und her springen. Lass deiner Kreativität freien Lauf.
    "Wenn jemand in einem Betrieb unverzichtbar ist, dann ist dieser Betrieb falsch organisiert." - Roberto Niederer
    wie meinst du aufteilen ?
    ich versuchs nochmal ausführlicher zuerklären...


    es sieht ungefähr so aus...

    Private sub

    anweisungen...
    anweisungen....

    aufruf der funktion

    anweisungen mit daten der funktion
    anweisungen mit daten der funktion

    end sub

    -----------------

    wenn jetzt ein fehler in der funktion kommt und catch ex as exception greift, will das programm ja mit den "anweisungen mit daten der funktion" weiterarbeiten, es hat durch den fehler ja aber keine bekommen...

    nun wollte ich als anweisung bei catch sozusagen einfügen, dass er an das "end sub" springt...

    hoffe, verständlich ausgedrückt bin noch neuling ;/

    mfg
    Dann mach das so, dass deine Funktion Nothing zurückgibt, wenn eine exception geworfen wird( Return Nothing ) und Prüfe in deiner Methode, ob Rückgabewert deiner Funktion Nothing ist.
    Wenn Nein, dann soll anweisungen mit den daten der funktion ausgeführt werden.

    Etwa so:

    VB.NET-Quellcode

    1. ...
    2. ...
    3. Dim result as Wasauchimmer = Aufruf der Funktion
    4. If not isnothing(result) Then
    5. anweisungen mit daten der funktion
    6. ...
    7. ...
    8. End If
    9. End Sub
    "Wenn jemand in einem Betrieb unverzichtbar ist, dann ist dieser Betrieb falsch organisiert." - Roberto Niederer