![]() |
Fehlerbehandlung - Umgang mit Exceptions
Hallo zusammen,
ich schreibe gerade eine Klasse und muss mich um die Fehlerbehandlung kümmern. Ich hatte eigentlich vor ein Event zur Verfügung zu stellen, durch das man auf Fehler reagieren kann. Dennoch dachte ich, es wäre vielleicht sinnvoll eigene Exceptions einzubauen falls der Programmierer die gebotene Möglichkeit nicht nutzt. Das Problem: Wenn ich nun sowohl das Event auslöse als auch eine Execption werfe bekommt der User evtl. zwei Meldungen wenn man im OnError-Event auch eine Meldung ausgeben will. Ich frage mich nun ob das gegenläufige Ansätze sind? Ich zwinge eben den Programmierer mit Exceptions try...except-Blöcke zu nutzen oder er muss das Event nutzen. Meine Idee das Problem zu umgehen wäre ein Flag zu nutzen und die Exceptions nur auszulösen, wenn dieses gesetzt ist. Meine Frage: Wie macht man es denn richtig bzw. was ist guter Programmierstil? :coder: |
Re: Fehlerbehandlung - Umgang mit Exceptions
Vergiss die Ereignisse und arbeite mit Exceptions.
|
Re: Fehlerbehandlung - Umgang mit Exceptions
Sprich ein OnError-Event ist hier eher der schlechte Stil?
Ich muss zugeben, dass mich das etwas wundert. Ich habe so ein Event schon öfter gesehen und genutzt. |
Re: Fehlerbehandlung - Umgang mit Exceptions
In den meisten Fällen muss ich Luckie zustimmen. Sinnvoll halte ich ein OnError nur bei solchen Dingen wie Sockets, wo Fehler aufgrund ihrer asynchronen Natur schwer zu fangen sind. Sonst verleiten solche Events nur zu schlechtem Stil, d.h. einem globalen Handler ("Es ist ein Fehler aufgetreten"). Wenn der Programmierer Code aufruft und dieser Aufruf fehlschlägt, dann muss ihm der Fehler am Aufrufort um die Ohren gehauen werden! Ohne Kenntniss der Aufrufsituation kann sonst keine gute Fehlerbehandlung stattfinden.
|
Re: Fehlerbehandlung - Umgang mit Exceptions
Zitat:
|
Re: Fehlerbehandlung - Umgang mit Exceptions
Oje... genau hier gehts los: Es handelt sich um eine Klasse zur Kommunikation via Sockets.
Was mach ich denn nun? |
Re: Fehlerbehandlung - Umgang mit Exceptions
Dann wäre ein Event ok.
|
Re: Fehlerbehandlung - Umgang mit Exceptions
Es ist umständlich. Der Programmierer muss dann immer noch eine Ereignisbehandlungsroutine schreiben. Mit Exceptions kann er den Fehler in der Routine abfangen in der er auftritt.
Und ausserdem führt das zu einem ewigen hin und her gescrolle im Code. Und wenn du dem Fehlererignis einen Fehlercode mitgibst, hast du in der Ereignisbahendlungsroutine irgendwann mal eine Ellen lange case-Abfrage, das ist auch unschön. |
Re: Fehlerbehandlung - Umgang mit Exceptions
Zitat:
|
Re: Fehlerbehandlung - Umgang mit Exceptions
Ich hab da noch eine Idee... die ist aber glaube ich sehr "unsauber":
Das Event bekommt einfach einen var-Parameter mit dem es signalisieren kann ob es den Fehler behandelt hat (so im Stil con CanClose). Wurde der Fehler behandelt wird keine Exception geworfen, falls nicht werfe ich eben die Exception. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:02 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