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