Zu welcher dieser On-Bedingungen würde das Else gehören? Beispiel aus:
http://www.delphipraxis.net/184526-%...ml#post1295838
Delphi-Quellcode:
program FunWithDelphi;
{$APPTYPE CONSOLE}
uses
Controls, SysUtils;
begin
try
raise TMouse.Create;
except
on E:
Exception do
begin
Writeln(E.Classname, '
: E is Exception');
end;
on E:TObject
do
begin
Writeln(E.Classname, '
: E is TObject');
end;
on E:TMouse
do
begin
Writeln(E.Classname, '
: E is TMouse');
end;
end;
ReadLn;
end.
Hier ein anderes Beispiel:
Delphi-Quellcode:
var
t: TDateTime;
a: Integer;
begin
try
t := StrToDate('40.01.2015');
ShowMessage(DateToStr(t));
a := 5;
ShowMessage(IntToStr(10 div (a-5)));
except
on E:EDivByZero do
ShowMessage('Division durch Null.');
else
ShowMessage('Sonstige Fehler.');
end;
end;
Division durch Null wird im Except-Block ausgeführt. Fallen sonstige Fehler an, werden die in Else abgearbeitet.
Übrigens, wusste ich bisher auch nicht, aber On..funktioniert im Except-Block nur wenn sonst keine Anweisungen in dem Block vorhanden sind. Das klappt also
nicht:
Delphi-Quellcode:
var
t: TDateTime;
a: Integer;
begin
try
t := StrToDate('40.01.2015');
ShowMessage(DateToStr(t));
a := 5;
ShowMessage(IntToStr(10 div (a-5)));
except
on E:EDivByZero do
ShowMessage('Division durch Null.');
ShowMessage('Sonstige Fehler.');
end;
end;
Geht nicht. Wird gar nicht erst kompiliert.