Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: wie geht man richtig mit try..except um?

  Alt 1. Jun 2011, 12:32
Das on E: Exception do kann man sich als Folgendes vorstellen:
Delphi-Quellcode:
if ExceptObject is Exception then begin
  E := ExceptObject;
  ...
end;
ON prüft als den Type der Exception, also ob dieser mindestens dem angegebenem Typen entspricht und erstellt dann (total delphiuntypisch) eine Variable, mit dem angegebenem Namen (E).

Man kann also mehrere ON-DO-Bedingenen angeben
und auf bestimmte Eigenschaften prüfen, falls ein bestimmter Typ mehr Infos liefert oder man sich die IS-Abfrage sparen will.

PS: ist alles das Selbe...
Delphi-Quellcode:
except
  on E: EOutOfMemory do
    ShowMessage('ungenügend Speicher');
  on E: Exception do
    ShowMessage(Format('unbekannter Fehler "%s": %s', [E.ClassName, E.Message]));
end;
Delphi-Quellcode:
except
  on E: Exception do
    if E is EOutOfMemory then
      ShowMessage('ungenügend Speicher')
    else
      ShowMessage(Format('unbekannter Fehler "%s": %s', [E.ClassName, E.Message]));
end;
Delphi-Quellcode:
except
  if ExceptObject is EOutOfMemory then
    ShowMessage('ungenügend Speicher')
  else
    ShowMessage(Format('unbekannter Fehler "%s": %s', [ExceptObject.ClassName, (ExceptObject as Exception).Message]));
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