Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.114 Beiträge
 
Delphi 12 Athens
 
#3

AW: Abort verursacht MemoryLeak ?

  Alt 22. Sep 2020, 17:55
Jupp, in dieser Funktion wird das Finally immer ausgeführt.
Die Speicherlecks sind also eher außerhalb dieser Methode zu suchen.

Und ja, Exit verlässt nur diese Methode,
aber Abort bricht auch alle aufrufenden Methoden ab.
Wenn es dann ein Speicherleck gibt, nach Abort oder einer anderen exception, dann hast du vermutlich irgendwo den Ressourcenschutzblock vergessen.

Fehlerbehandlung mit ShowMessage, dafür sollte man auch gesteinigt werden.
Versuche mal dieses sendMassMail innerhalb eines Try-Except zu benutzen. Ein Raise anstatt der Message würde die Behandlung erleichtern, denn so kann man außerhalb den Fehler nicht behandeln, loggen oder sonstwas.

Außerdem wäre es nett, wenn du bitte erstmal die Compiler-Warnungen beachten würdest.
Ich bin mir fast sicher, dass es für die Variable "msg" mindestens eine Warnung gibt.
Zitat:
Delphi-Quellcode:
try
  msg := ...
finally
  FreeAndNil(msg);
end;
Den "msg" ist nicht initialisiert.
Mögliche Lösungen:
Delphi-Quellcode:
msg := ...
try
  
finally
  FreeAndNil(msg);
end;
oder
Delphi-Quellcode:
msg := nil;
try
  msg := ...
finally
  FreeAndNil(msg);
end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (22. Sep 2020 um 17:59 Uhr)
  Mit Zitat antworten Zitat