简单的尝试..最后的例子,以避免内存泄漏

如果在执行期间发生异常,请使用 try-finally 以避免泄漏资源(例如内存)。

下面的过程将字符串保存在文件中,并防止 TStringList 泄漏。

procedure SaveStringToFile(const aFilename: TFilename; const aString: string);
var
  SL: TStringList;
begin
  SL := TStringList.Create; // call outside the try 
  try
    SL.Text := aString;
    SL.SaveToFile(aFilename);
  finally
    SL.Free // will be called no matter what happens above
  end;
end;

无论保存文件时是否发生异常,SL 都将被释放。任何异常都将发送给调用者。