jain ... dafür ist eigentlich der Except-Block zuständig,
aber (nicht schön, aber gehn)
Delphi-Quellcode:
EinFehler := True;
try
...
EinFehler := False;
finally
if EinFehler then ...
end;
ansonsten
Delphi-Quellcode:
try
...
except
...
raise; // erneut auslösen
end;
Delphi-Quellcode:
try
...
except
on E:
Exception do begin
...
E.
Message := '
Fehler: ' + E.
Message;
// eventuell die Meldung erweitern
...
raise;
// erneut auslösen
end;
end;
Delphi-Quellcode:
try
...
except
on E:
Exception do begin
...
raise Exception.Create(...);
// andere Exception auslösen
end;
end;
und dann noch verschachtelt
Delphi-Quellcode:
try
X := TIrgendwas.Create;
try
...
finally
X.Free;
// erst aufräumen, dann Exception behandeln
end;
except
...
end;
Delphi-Quellcode:
X := TIrgendwas.Create;
try
try
...
except
...
end;
finally
X.Free;
// erst Exception behandeln, dann aufräumen
end;
Delphi-Quellcode:
X :=
nil;
try
X := TIrgendwas.Create;
// Fehler beim Erstellen ebenfalls mit behandeln
try
...
except
...
end;
finally
X.Free;
// erst Exception behandeln, dann aufräumen
end;