Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
Delphi 12 Athens
|
AW: Exception mit gleichem Typ nochmal auslösen
19. Mai 2023, 15:54
mmmmmmmmmmmmmmm, nja
Delphi-Quellcode:
procedure TForm3.FormCreate(Sender: TObject);
begin
try
raise EInOutArgumentException.Create(' Der Text', ' C:\irgendwo');
except
on E: EInOutArgumentException do
ShowMessage(Format(' %s:'#10' %s'#10#10' Pfad="%s"', [E.ClassName, E. Message, E.Path]));
end;
try
try
raise EInOutArgumentException.Create(' Der Text', ' C:\irgendwo');
except
on E: Exception do
raise ExceptClass(E.ClassType).Create(' My Message:'#10 + E. Message);
end;
except
on E: EInOutArgumentException do
ShowMessage(Format(' %s:'#10' %s'#10#10' Pfad="%s"', [E.ClassName, E. Message, E.Path]));
end;
try
try
raise EInOutArgumentException.Create(' Der Text', ' C:\irgendwo');
except
on E: Exception do begin
var E2 := ExceptClass(E.ClassType).Create(' My Message:'#10 + E. Message);
if E2 is EInOutArgumentException then
EInOutArgumentException(E2).Path := EInOutArgumentException(E).Path;
raise E2;
end;
end;
except
on E: EInOutArgumentException do
ShowMessage(Format(' %s:'#10' %s'#10#10' Pfad="%s"', [E.ClassName, E. Message, E.Path]));
end;
end;
Delphi-Quellcode:
procedure TForm3.FormCreate(Sender: TObject);
begin
try
if not FileCreate(' C:\nicht da\himitsu', fmOpenRead, 0) = 0 then
RaiseLastOSError;
except
on E: Exception do
//if E.Message = 'Systemfehler. Code: 3.'#$D#$A'Das System kann den angegebenen Pfad nicht finden' then // Das passt so natürlich nur im deutschen Windows
if (E is EOSError) and (EOSError(E).ErrorCode = {3}ERROR_PATH_NOT_FOUND) then // Winapi.Windows.pas
ShowMessage(' Pfad nicht gefunden')
else if (E is EOSError) and (EOSError(E).ErrorCode = {5}ERROR_ACCESS_DENIED) then
ShowMessage(' Zugriff verweigert')
else if E is EOSError then
ShowMessage(Format(' %s'#10' %s'#10#10' ErrorCode=%d'#10' ErrorText="%s"', [E.ClassName, E. Message, EOSError(E).ErrorCode, SysErrorMessage(EOSError(E).ErrorCode)]))
else
ShowMessage(Format(' %s'#10' %s', [E.ClassName, E. Message]));
end;
end;
$2B or not $2B
Geändert von himitsu (19. Mai 2023 um 16:11 Uhr)
|
|
Zitat
|