Hm, merkwürdig. Ich setze die Konstruktion, wie ich sie beschrieben habe, an einigen Stellen in meinen Programmen ein und eigentlich klappt das immer wunderbar:
Delphi-Quellcode:
try
irgendwas;
except
fehlermedlung_oder_so;
end;
aufraeumen;
weitere_befehle;
Alle Zeilen nach dem try-except-Block werden bei mir immer ausgeführt - sonst hätte ich hier in manchen Programmen richtige Probleme. try-finally nutze ich eigentlich so gut wie gar nicht, weil ich immer dachte, der würde dann eben nur noch den finally-Teil ausführen und dann nix mehr. Also:
Delphi-Quellcode:
try
irgendwas;
finally
aufraeumen;
end;
weitere_befehle;
Im zweiten Beispiel würde zwar auch aufgeräumt, aber keine weiteren Befehle mehr ausgeführt. Dachte ich.
Jetzt bin ich verwirrt. Aber glücklich. Läuft ja bei uns beiden.
(Bin aber dennoch für Aufklärung dankbar)
@xaromz: Naja, okay, normalerweise gebe ich da nur Fehlermeldungen aus oder setze Variablen auf default-Werte, da sollte dann nix mehr passieren. Dass man da sonst auch wieder Fehlerbehandlungen machen muss, ist klar, aber die Frage bliebe ja die gleiche: auch das könnte ich ja prinzipiell durch mehrere verschachtelte try-except-Blöcke machen...
Bis denn
Bommel