![]() |
Exceptions automatisch behandeln
Hallo,
ich arbeite gerade an einem Programm, welches weitestgehend (also eigentlich zu 99,999 %) selbständig arbeiten muss. Also ganz ohne Benutzerinteraktionen! Das bedeutet, dass ich gerade in die Behandlung von Exceptions sehr viel Hirnschmalz investiere! ;) So habe ich bisher z. Bsp. schon die Fehlermeldungen von den Dialogboxen in eine Log-Datei umgelenkt, damit keine Dialogboxen auftauchen! Meine Fragen sind nun: 1. Wenn eine Exception auftritt, wird die aktuell laufende Funktion / Prozedur beendet. Kann ich das irgendwie vehindern? Denn das Programm muss nach einem Fehler auf jeden Fall weiterlaufen! 2. Welche Möglichkeiten habe ich noch, Fehler abzufangen, auszuwerten und vor allem sicherzustellen, dass mein Programm auch nach einem Fehler weiterhin (eingeschränkt!) funktioniert! Ist ein schwieriges Thema und ich hab nicht wirklich Literatur dazu gefunden! Aber vielleicht haben ja einige "alte Hasen" hier schon etwas mehr Erfahrung damit! ;) Viele Grüße, Delphi-Coder |
Re: Exceptions automatisch behandeln
zu 1.) try ... except
zu 2.) try ... except Es ist aber immer besser Exceptions zu vermeiden, asl auf sie zu reagieren. |
Re: Exceptions automatisch behandeln
Danke für die Antwort!
Alle wichtigen Blöcke habe ich schon mit Try-Except abgesichert! Aber Fehler können ja nie zu 100% vermieden werden, deshalb muss ich sie schon irgendwie behandeln! |
Re: Exceptions automatisch behandeln
Wenn alle Stricke reißen, wird Application.onException aufgerufen. Der gesamte Aufrufstack wird zwar abgeräumt (=die laufende Prozedur wird abgebrochen), aber du kannst immerhin noch die Ausgabe umlenken.
|
Re: Exceptions automatisch behandeln
Zitat:
Ich suche mehr nach Möglichkeiten, die über die übliche Fehlerbehandlung (try...except, Application.onException, ...) hinausgehen. Also insgesamt suche ich mehr nach Strategien und weniger nach Quelltexte! Vor allem ist es mir wichtig, dass das Programm - sprich die aktuelle Prozedur - auch nach einem Fehler weiterläuft bzw. neu aufgerufen wird! |
Re: Exceptions automatisch behandeln
Das hängt immer vom Quelltext ab:
Hier wäre es "fatal", wenn man trotz Exception weitermacht:
Delphi-Quellcode:
aber in anderen bereichen ist es zu verschmerzen (z.B. wenn die Datei fehlt).
sl := TStringList.Create;
try sl.LoadFromFile(AFileName); {...} except log.add('Can''t load ' + AFileName); end; {Benötigte Zugriffe... z.B. für Benutzterdaten} Dass solltest du selber überprüfen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:08 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