Einzelnen Beitrag anzeigen

Benutzerbild von Phoenix
Phoenix
(Moderator)
Online

Registriert seit: 25. Jun 2002
Ort: Hausach
7.613 Beiträge
 
#1

Exception spezifizieren bzw. umwandeln

  Alt 17. Aug 2004, 13:32
Hi,

mag sein das das ne doofe Frage ist, aber ich steh grad auf dem Schlauch.
Erstmal ein Beispiel:

Delphi-Quellcode:
type
   EFooException = class(Exception);
   EBarException = class(Exception);

implementation

procedure DoRaiseSomething(foo: boolean);
begin
   if foo then
      raise EFooException.Create('Some-')
   else
      raise EBarException.Create('-thing');
end;
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
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat