Einzelnen Beitrag anzeigen

Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.596 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Zugriffsverletzung beim Zerstören der TIniFile-Instanz

  Alt 26. Jan 2021, 16:20
Delphi-Quellcode:
iniFile := nil;
try
  iniFile := TIniFile.Create(FIniFile);
  // ReadBool, ReadString, etc.
finally
  if iniFile <> nil then
    iniFile.Free;
end;
Eigentlich macht man das (wie bei anderen Objekten) so:
Delphi-Quellcode:
iniFile := TIniFile.Create(FIniFile);
try
  // ReadBool, ReadString, etc.
finally
  iniFile.Free;
end;
oder ggf. im finally auch FreeAndNil statt .Free, aber darüber lässt sich streiten.

Die if-Abfrage auf <> nil ist unnötig, da .Free das bereits selbst macht. Und wenn man die Zuweisung von iniFile vor das try setzt, kann man in Finally sowieso davon ausgehen, dass es assigned ist, denn eine evtl. Exception im Construtor würde ja das try..finally komplett überspringen.
Thomas Mueller
  Mit Zitat antworten Zitat