從Lua documentation
本地狀態,ERR = PCALL(functionName)
的PCALL函數調用在保護模式下的第一個參數,以便 它捕獲函數運行時出現任何錯誤。如果沒有 錯誤,則pcall返回true,加上該調用返回的任何值。 否則,它返回false,並返回錯誤消息。
創建圖像
local image
local status, err = pcall(function() image = display.newImage('img.png', 100, 100) end)
if status and image then
print('no errors ')
-- no errors
else
print('errors ')
-- function raised an error: take appropriate actions
end
時,您可以使用pcall
函數來捕獲的錯誤更重要的是,我把下面的例子使用network.download
的距離Corona documentation
local function networkListener(event)
if (event.isError) then
print("Network error - download failed: ", event.response)
elseif (event.phase == "began") then
print("Progress Phase: began")
elseif (event.phase == "ended") then
print("Displaying response image file")
myImage = display.newImage(event.response.filename, event.response.baseDirectory, 60, 40)
myImage.alpha = 0
transition.to(myImage, { alpha=1.0 })
end
end
local params = {}
params.progress = true
network.download(
"http://docs.coronalabs.com/images/simulator/image-mask-base2.png",
"GET",
networkListener,
params,
"helloCopy.png",
system.TemporaryDirectory
)
謝謝,我會努力的! –
它看起來像PCALL不會捕獲丟失圖像的錯誤。如果文件不存在,它不會捕獲錯誤...? –
你說得對。我修好了它。應該管用:) – ldurniat