Einzelnen Beitrag anzeigen

Benutzerbild von maximov
maximov

Registriert seit: 2. Okt 2003
Ort: Hamburg
548 Beiträge
 
Delphi 2005 Professional
 
#3

Re: Exception spezifizieren bzw. umwandeln

  Alt 18. Aug 2004, 10:18
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}
  Mit Zitat antworten Zitat