Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#8

Re: Funktion erstellt gibt Objekt zurück, wer räumt auf

  Alt 17. Jul 2004, 16:28
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).
  Mit Zitat antworten Zitat