Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Exceptions automatisch behandeln (https://www.delphipraxis.net/92476-exceptions-automatisch-behandeln.html)

Delphi-Coder 20. Mai 2007 19:31


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

mkinzler 20. Mai 2007 19:35

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.

Delphi-Coder 20. Mai 2007 19:37

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!

Apollonius 20. Mai 2007 19:46

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.

Delphi-Coder 20. Mai 2007 19:50

Re: Exceptions automatisch behandeln
 
Zitat:

Zitat von Apollonius
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.

Ja, genau das passiert ja nun schon.

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!

xZise 20. Mai 2007 21:46

Re: Exceptions automatisch behandeln
 
Das hängt immer vom Quelltext ab:
Hier wäre es "fatal", wenn man trotz Exception weitermacht:
Delphi-Quellcode:
sl := TStringList.Create;
try
  sl.LoadFromFile(AFileName);
  {...}
except
  log.add('Can''t load ' + AFileName);
end;
{Benötigte Zugriffe... z.B. für Benutzterdaten}
aber in anderen bereichen ist es zu verschmerzen (z.B. wenn die Datei fehlt).
Dass solltest du selber überprüfen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz