Frage zu "try-catch()"



  • Hi Pals,

    kennt sich jemand mit der "try-catch()"-Anweisung aus? Ich hab' folgendes Beispiel mit 'ner Frage:

    Beispiel:

    try
    {
    Command1();
    Command2();
    Command3();
    Command4();
    }
    catch(...)
    {
    ShowMessage("Fehler");
    }
    Soweit zum Code. Jetzt die Frage:
    Wenn z.B. "Command2" fehlschlägt, werden "Command3" und "Command4" trotzdem ausgeführt? Oder wird ab da eine "break;"-funktion ausgelöst?

    Danke für schnelle Antwort.

    P.S. NICHT Copy & Paste!!! Sieh sonst CommandX(); als void.



  • Es wird keine break;-Funktion ausgelöst, sondern eine Exception geworfen. Nach dem Abarbeiten des Exception-Handlers (im catch-Block) wird die Ausführung hinter dem entsprechenden catch-Block fortgesetzt (es sei denn die Exception wird weitergeworfen). Es wird nicht versucht, an der Stelle, wo die Exception aufgetreten ist, fortzusetzen.

    Falls also noch Unklarheiten bestehen: Command3 und Command4 werden nicht ausgeführt.



  • Danke für die Antwort. Sehr Hilfreich, z.B. für Prüfprotokolle beim Programmstart. (Ausgabefeld: TMemo).


Anmelden zum Antworten