AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Exceptions automatisch behandeln

Ein Thema von Delphi-Coder · begonnen am 20. Mai 2007 · letzter Beitrag vom 20. Mai 2007
Antwort Antwort
Delphi-Coder

Registriert seit: 8. Jan 2003
Ort: Greifswald / Stralsund
151 Beiträge
 
Delphi 7 Enterprise
 
#1

Exceptions automatisch behandeln

  Alt 20. Mai 2007, 19:31
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Exceptions automatisch behandeln

  Alt 20. Mai 2007, 19:35
zu 1.) try ... except
zu 2.) try ... except
Es ist aber immer besser Exceptions zu vermeiden, asl auf sie zu reagieren.
Markus Kinzler
  Mit Zitat antworten Zitat
Delphi-Coder

Registriert seit: 8. Jan 2003
Ort: Greifswald / Stralsund
151 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Exceptions automatisch behandeln

  Alt 20. Mai 2007, 19:37
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!
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Exceptions automatisch behandeln

  Alt 20. Mai 2007, 19:46
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.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Delphi-Coder

Registriert seit: 8. Jan 2003
Ort: Greifswald / Stralsund
151 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Exceptions automatisch behandeln

  Alt 20. Mai 2007, 19:50
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!
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#6

Re: Exceptions automatisch behandeln

  Alt 20. Mai 2007, 21:46
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.
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:33 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