Vejam o exemplo abaixo:
local ok, result = pcall(canvas.new, canvas, "imagem-inexistente.jpg")
if ok then
canvas:compose(result, 10, 10)
else
canvas:drawText(10, 10, "Erro: "..tostring(result))
end
canvas:flush()
O código tenta carregar uma imagem que não existe (o que dará erro e deveria ser capturado). No lugar de mostrar na tela a mensagem de erro, o erro é propagado e app finalizada indicando que a imagem não existe.
Isto é o comportamento normal? A própria norma do Ginga-NCL cita o uso da função pcall e ela não consta no item "10.1 Linguagem Lua - Funções removidas da biblioteca de Lua"
Autor: Manoel Campos da Silva Filho
22 comentários