Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#11

AW: finally: if "exception exists" then ... else ... Ist das möglich?

  Alt 2. Sep 2011, 12:06
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;
$2B or not $2B

Geändert von himitsu ( 2. Sep 2011 um 12:11 Uhr)
  Mit Zitat antworten Zitat