Zitat von
grenzgaenger:
mal davon abgesehen, solltest du solche konstrukte vermeiden. raise und
exception nur wenn es gar nicht anders geht. ist eigentlich ein systemübergreifender goto nur noch schlimmer!
Da bin ich anderer Meinung. Exceptions sind gerade dazu da, damit man sich nicht drum kümmern muss, was jetzt alles nicht mehr ausgeführt werden darf. Und das was ausgeführt werden muss, steht eh im finally. Genau das ist doch der Sinn von exceptions: Sich auf einfache Weise aus einer Ausnahmesituation ui retten. Damit braucht man die ganzen fehleranfälligen, unpraktischen und schlecht erweiterbaren Fehlercodes nicht mehr, etc.
Mal n paar Hinweise an denen man
IMHO überprügfen kann, ob man Exceptions richtig einsetzt:
- Exceptions nur in inneren Klassen; nicht in Formularklassen
- solche spätetens in dn Formularklassen wieder fangen (in manchen - eher seltenen - Fällen macht es auch Sinn dies früher zu tun)
- trotzdem immer versuchen, dass die Ausnahmesituation gar nicht erst auftritt(Beispiel: mit FileExists prüfen, statt den fehler im except abfangen)
- in den finally-Block nur zum freigeben: Free, FreeMem, FreeAndnil
- in den except-Block nix, was wieder ne Exeption auslösen könnte
- ggf. nach Fehlerklassen unterscheiden ==> on
- für ne eigene Klassen auch eigene Fehlerklassen schreiben. nicht
exception direkt benutzen
- wenn es schon eine passende Fehlerklasse gibt, nicht noch eine schreiben
- der
Exception alle benötoigen Infos mitgeben
- ...
mfg
Christian
P.S.: Zum eigentlichen Problem: Gibt es irgend einen Grund, warum du es nicht einfach ausprobierst bzw. ausporobiert hast?