Zitat von
Phoenix:
...
Kann ich nun diese Exceptions die z.B. aus einer Basisklasse kommen in einer abgeleiteten Klasse abfangen und möglicherweise 'übersetzen' bzw. als gleiche
Exception aber mit anderem Text weiterraisen? Also im Stil von:
Delphi-Quellcode:
procedure SolveSomething(bar: boolean);
begin
try
DoRaiseSomething(bar);
except
on EFooException do raise EFooException.Create('Ein Foo-Fehler ist aufgetreten.');
on EBarException do raise EBarException.Create('Ein Bar-Fehler ist aufhetreten.';
end;
end;
Geht das, oder bleibt mir die ursprüngliche
Exception dann auch bestehen und wird mitgeraised?
Edit: Tippfehler en masse
Ja das geht natürlich, wobei in diesem fall sich die klassen der
exception nicht ändert und auch kein neues
exception-objekt erstellt werden muss. Du kannst die
exception aber
re-raisen und vorher die message ändern:
Delphi-Quellcode:
try
DoRaiseSomething(bar);
except
on E:EFooException do
begin
E.Message := 'was anderes';
raise E;
end;
...
end;
Sonst wär das ja doppelt gemoppelt
mâxîmôv.
{KDT}