Zitat von
supermuckl:
Delphi-Quellcode:
var
SL :TStringList;
begin
try
SL := foo();
finally
if Assigned(SL) then
Freeandnil(SL);
end;
end;
Und nun lass foo mal eine
Exception auslösen. Das dein Assigned(SL) diesen Zustand abfängt steht bei 1:4 Mrd.
Die Muster für try/finally sind nämlich:
Delphi-Quellcode:
V := Type.Create;
try
...
finally
V.Free;
end;
und
Delphi-Quellcode:
V := nil;
try
V := Type.Create;
...
finally
V.Free;
end;
Das V:=nil ist im zweiten Muster wichtig und der Compiler meldet das auch (aber es soll ja Leute geben, die Compiler Warnungen und Hinweise in den Wind schlagen, weil sie doch "unwichtig" sind).