Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Try Except End; verschachteln

  Alt 8. Nov 2010, 00:50
Zitat:
Delphi-Quellcode:
tPNG := TPngObject.Create;
tJPG := TJPEGImage.Create; // hier Exception im Constructor
tBMP := TBitmap.Create;
Try
  ...
Finally
  tPNG.Free;
  tJPG.Free;
  tBMP.Free;
End;
Nein Luckie, du täuchst dich nicht.
Bei einem Objekt, stimmt diese Annahme.
Tritt hier aber z.B. in TJPEGImage.Create eine Exception auf, so wird dieses Objekt von Delphi freigeben,
aber das vorher erstellte tPNG wird dabei nicht mit freigegben ... wie auch.

> tPNG/TPngObject wird erstellt und bleibt erhalten
> tJPG/TJPEGImage wird zwar erstellt, aber durch die Exception automatisch freigegeben
> tBMP/TBitmap wird erst garnicht erstellt, da die Verarbeitung hier noch nicht vorbeikam
> der Finally-Block und alle .Free werden nicht aufgerufen, da dieses ebenfalls nicht mehr ausgeführt werden
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat