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;