Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Nur bestimmte exceptions abfangen/ignorieren

  Alt 22. Jul 2020, 12:30
Erstens niemals nicht über den Namen vegleichen.
Nachteil ist auch, dass der Name/Typ so nicht vom Compiler geprüft wird.

Delphi-Quellcode:
try
  ...
except
  on E: Exception do
    if E is EIBInterBaseError then
      // nicht machen
    else
      raise;
end;
Delphi-Quellcode:
try
  ...
except
  on E: Exception do
    if not (E is EIBInterBaseError) then
      raise;
end;
oder wie bereits gezeigt
Delphi-Quellcode:
try
  ...
except
  on E: EIBInterBaseError do
    ; // nichts
  on E: Exception do
    raise;
end;
Zitat:
raise Exception.Create(E.Message);
Und wer das macht, wird auch gesteinigt.

Denn rate mal was hier passiert.
Delphi-Quellcode:
try
  try
    raise EIBInterBaseError.Create('peng');
  except
    on E: Exception do
      raise Exception.Create(E.Message); // das Böse, wo der Typ sinnlos vernichtet wird ud Informationen verloren gehen
  end;
except
  on E: EIBInterBaseError do
    ShowMessage('juhu');
  on E: Exception do
    raise Exception.Create('Danke (sarkastisch)'); // oder ShowMessage mit ganz bösem Icon
end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat