【发布时间】:2010-08-19 22:19:38
【问题描述】:
我在 StackOverflow 上看到了这段代码:
with TDownloadURL.Create(nil) do
try
URL := 'myurltodownload.com';
filename := 'locationtosaveto';
try
ExecuteTarget(nil);
except
result := false;
end;
if not FileExists(filename) then
result := false;
finally
free;
end;
能不能简化成这样:
Result:= FALSE; <--------- Compiler complains
DeleteFile(Dest);
dl:= TDownloadURL.Create(NIL);
TRY
dl.URL:= URL;
dl.FileName:= Dest;
dl.ExecuteTarget(NIL);
Result:= FileExists(Dest);
FINALLY
dl.Free;
END;
如果 'ExecuteTarget' 出现问题,最终的 Result:= ... 将永远不会被执行,因为程序将直接跳转到 'finally'。对?因此,该函数将返回 FALSE。我做错了吗?
PS:
- 我打算在线程中使用此代码。
- 我只是将函数放在 Delphi 中,编译器抱怨第一行:“赋值从未使用过。”
【问题讨论】:
-
第一个代码处结果的起始点在哪里?结果 = 真?
-
@igon:我不知道。可能只是演示/骨架代码。
标签: delphi try-finally try-except