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).