首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

try except跟try finally合一起不能运行except后的内容解决方案

2012-03-16 
try except跟try finally合一起不能运行except后的内容function Tform1.DownLoadFile(sURL,sFName:string)

try except跟try finally合一起不能运行except后的内容
function Tform1.DownLoadFile(sURL,sFName:string):boolean;
var
tStream:TMemoryStream;
begin
tStream:=TMemoryStream.Create;
try
  try
idHttp1.Get(sURL,tStream);
tStream.SaveToFile(sFName);
Result:=true;
 finally
 tstream.Free;
 end;
except
Result:=false;
tStream.Free;

end;

end;

代码如上

[解决办法]
在except 后面的 tStream.Free; 是多余的,如果有异常发生tStream被释放两次,又导致新的异常。
finally是一定会执行的,except是有异常的时候才执行,所以不用调用两次Free

热点排行