@stahli
Vielleicht bringe ich mal einen anderen Betrachtungspunkt in das Spiel. Ein Beispiel:
Delphi-Quellcode:
type
TTest =
class
public
constructor Create;
end;
constructor TTest.Create;
begin
raise Exception.Create('
Fehler');
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Test: TTest;
begin
Test := TTest.Create;
try
ShowMessage('
Im Try');
Abort;
finally
ShowMessage('
Im Finally');
Test.Free;
end;
end;
In Create wird eine
Exception ausgelöst. Hier ist es unwichtig ob es einen Try Finally oder gar Try
Exception Block gibt. Der kommt erst gar nicht ins Spiel. Macht es in Create Krachbumm, wird der Fehler intern abgewickelt, bzw. es geht intern sofort zum Destructor. Try Finally ist für Fehler gedacht die später kommen.