In Bezug auf Create+Free und Ähnliches gibt es eine Ausnahme.
Delphi-Quellcode:
X := nil; // aber auch hier ist die Initialisierung vor dem TRY
try
...
X := TIrgendwas.Create;
...
finally
X.Free; // intern => if Assigned(X) then X.Free;
end;
PS: Gerade bei diesem Create+Free würde meistens der Compiler eine Warnung werfen, vonwegen "X" sei nicht inisialisiert, wenn in dem FINALLY drauf zugegriffen wird, aber es vorher nichts zugewiesen wurde.