我看到這個代碼在這裏貼在計算器上:使用嵌套「嘗試/終於」「嘗試/除」報表
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'中出現錯誤,將永遠不會執行,因爲程序將直接跳轉到'finally'。對?所以,該函數將返回FALSE。難道我做錯了什麼?
PS:
- 我打算在一個線程中使用此代碼。
- 我只是把這個函數放在Delphi和編譯器有關第一行的抱怨上:「從未使用過的值」。
哪裏是在第一個代碼的結果的啓動?結果=真? – garik 2010-08-19 22:26:36
@igon:我不知道。可能只是演示/骨架代碼。 – Ampere 2010-08-19 22:34:24