TryCatch - Wie kann man überprüfen, ob erfolgreich?

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    TryCatch - Wie kann man überprüfen, ob erfolgreich?

    Hallo liebe VBler,

    ich arbeite gerade an meinem ersten größerem Programm und habe eine Frage. Ich benutze mehrere TryCatch und behandel logischerweise auch die Fehler. Soweit kein Problem. Jetzt habe ich aber das Problem, dass ich gerne dem Benutzer zeigen würde, dass der TryCatch erfolgreich war.

    Also so in etwa:

    VB.NET-Quellcode

    1. Try
    2. 'Das was er testen soll
    3. Catch ex As Exception
    4. 'Fehlerbehandlung
    5. 'Hier soll irgendwie rein, ob der Try erfolgreich war...
    6. End Try


    Wer kann mir helfen?

    MfG
    Was heißt für dich dass er erfolgreich war?
    Da gibts doch keinen Erfolg... Nur nen ... wenns kracht... mach halt was anderes...

    Könntest jetzt ans ende vom Catch ne Messagebox setzen, aber allgemein finde ich Try-Catch eh unsinnig.
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Try
    [ tryStatements ]
    [ Exit Try ]
    [ Catch [ exception [ As type ] ] [ When expression ]
    [ catchStatements ]
    [ Exit Try ] ]
    [ Catch ... ]
    [ Finally
    [ finallyStatements ] ]
    End Try


    Hier siehst du schön, wie man das macht, und was das Schlüsselwort ist :)

    MemoAnMichSelbst schrieb:

    Was heißt für dich dass er erfolgreich war?
    Da gibts doch keinen Erfolg... Nur nen ... wenns kracht... mach halt was anderes...

    Könntest jetzt ans ende vom Catch ne Messagebox setzen, aber allgemein finde ich Try-Catch eh unsinnig.
    Try-Catch ist nicht unsinnig, sofern man die Fehler auch behandelt.


    ThuCommix schrieb:

    Try
    [ tryStatements ]
    [ Exit Try ]
    [ Catch [ exception [ As type ] ] [ When expression ]
    [ catchStatements ]
    [ Exit Try ] ]
    [ Catch ... ]
    [ Finally
    [ finallyStatements ] ]
    End Try


    Hier siehst du schön, wie man das macht, und was das Schlüsselwort ist :)
    Naja, mit Finally habe ich es schon versucht. Jedoch wird finally immer durchlaufen, auch wenn ein Fehler "geworfen" wurde... Auch die Catch - Methoden habe ich mir schon angeschaut...

    Kann mir sonst jemand eine Lösung vorschlagen bzw. eine andere Vorgehensweise?

    MfG
    Ich finde es unsinnig, da es so ziemlich immer eine Möglichkeit gibt, die Fehler schon im Vorfeld abzufangen.
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Hey,

    definiert sich der Erfolgsfall nicht per se durch das Nichteintreten einer Exception (quasi per definition eines Try-Catch-Konstrukts)? Insofern hat @ThuCommix: die passende Behandlung in Beitrag #5 ja schon gegeben...

    Gruß Manschula
    Besser wäre es m.E. so:

    VB.NET-Quellcode

    1. Try
    2. ' Anweisungen
    3. Catch ex As Exception
    4. ' ggf. MessageBox anzeigen
    5. 'MessageBox.Show("bla")
    6. Return
    7. End Try
    8. ' hier ist alles erfolgreich
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    ThuCommix schrieb:

    VB.NET-Quellcode

    1. Dim flag As Boolean = False
    2. Try
    3. Anweißungen, am ende die flag setzen
    4. flag = True
    5. Catch ex As Exception
    6. flag = False
    7. End Try
    8. 'Bei Flag = True alles erfolgreich
    9. If Flag ...
    Danke, auf die Idee bin ich gar nicht gekommen ... :D



    RodFromGermany schrieb:

    Besser wäre es m.E. so:

    VB.NET-Quellcode

    1. Try
    2. ' Anweisungen
    3. Catch ex As Exception
    4. ' ggf. MessageBox anzeigen
    5. 'MessageBox.Show("bla")
    6. Return
    7. End Try
    8. ' hier ist alles erfolgreich
    Das funktioniert nicht, da alles was unter der Try-Catch - Anweisung steht, immer (egal, ob ein Fehler aufgetreten ist) ausgeführt wird.

    MfG

    Fanalys schrieb:

    Das funktioniert nicht, da alles was unter der Try-Catch - Anweisung steht, immer (egal, ob ein Fehler aufgetreten ist) ausgeführt wird.

    Beachte das Return vor dem End Try. Dadurch wird die Methode verlassen, wenn ein Fehler aufgetreten ist.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils
    @Niko Ortner: Genau. :D

    Fanalys schrieb:

    Das funktioniert nicht,
    Lesen, verstehen, umsetzen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Fanalys schrieb:

    Ich benutze mehrere TryCatch und behandel logischerweise auch die Fehler.
    echt?
    Weil die meisten denken nur, dass sie Fehler behandeln, und in Wirklichkeit bauen sie nur noch mehr ein.
    TryCatch ist ein heißes Eisen

    Zeig doch mal ein Beispiel, wie du einen Fehler behandelst.