@messie: Weil der Konstruktor fehlschlagen kann, und dann wäre da nichts zum freigeben. Weiterhin stimmt der Kontext nicht: Der Try..Finally-Block soll ja gerade die Verwendung des OPbjektes schützen und nicht die Instantiierung selbst.
Richtig wäre es so:
Delphi-Quellcode:
Try
Obj := TMyObect.Create;
Try
Obj.Foobar
Finally
Obj.Free
Finally
Showmessage('Ach Du scheisse, noch nich mal Create funzt.')
End;
@NegaH: Ich mag es aber in grün lieber:
Delphi-Quellcode:
Try
...
Except
On E:EThisException
Do Begin
HandleThisException(E);
End;
On E:EThatException
Do Begin
HandleThatException (E);
End;
On E:
Exception Do Begin
HandleAnyOtherException (E);
End;
End;