Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Programm stürzt nach mehren Stunden Laufzeit ab.

  Alt 2. Sep 2021, 21:35
Ein Beispiel:
Du erstellst in PrinServer_action eine TStringList, hast aber keinen try..finally Block zur Freigabe drum. Tritt also ein Fehler auf oder springst du mit abort (ein paar Zeilen nach dem begin) raus, wird diese nicht wieder freigegeben.

Im Laufe vom Stunden summiert sich dann dieser nicht freigegebene Speicher und am Ende ist der voll und es geht gar nichts mehr. (Es kann auch sein, dass da noch mehr nicht freigegeben wird, ich habe nicht genau geschaut.) Und dann kann Indy auch nicht mehr richtig mit dem Server sprechen und es kann zu ganz komischen Fehlern kommen. Achte mal auf den Speicherverbrauch im Taskmanager, wenn der Fehler auftritt.

Davon unabhängig brauchst du das abort (sprich die stille Exception) in deinem Quelltext definitiv nicht. Zur Steuerung des Programm- und Schleifenablaufs gibt es mit Exit, Break, Continue usw. saubere Möglichkeiten. Das in Kombination mit Ressourcenschutzblöcken (try..finally) sollte Besserung bringen.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat