![]() |
Exception spezifizieren bzw. umwandeln
Hi,
mag sein das das ne doofe Frage ist, aber ich steh grad auf dem Schlauch. Erstmal ein Beispiel:
Delphi-Quellcode:
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:
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;
Delphi-Quellcode:
Geht das, oder bleibt mir die ursprüngliche Exception dann auch bestehen und wird mitgeraised?
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; Edit: Tippfehler en masse :roll: |
Re: Exception spezifizieren bzw. umwandeln
mach ne try-except schleife, und dann raise ne neue exception
edit: so wie in deinem zweiten code. die ursprüngliche sollte dann tot sein, weil sie in der except-anweisung verarbeitet und erledigt wurde. dass dabei eine neue exception entstand sollte nichts ausmachen. |
Re: Exception spezifizieren bzw. umwandeln
Zitat:
Delphi-Quellcode:
Sonst wär das ja doppelt gemoppelt :wink:
try
DoRaiseSomething(bar); except on E:EFooException do begin E.Message := 'was anderes'; raise E; end; ... end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz