local function check_data(data)
if data == nil then
error("data is nil", 0)
end
if #data == 0 then
error("data is empty", 0)
end
end
-- pcall(f, ...) calls f and catches any error:
-- false and the error value come back
local ok, err = pcall(check_data, nil)
-- ok = false
-- err = data is nil
-- An error raised by Lua itself is caught too
local _, lua_err = pcall(function()
local data = nil
return data.size
end)
-- lua_err = main.lua:19: attempt to index a nil
-- value (local 'data')
print("ok = " .. tostring(ok))
print("err = " .. err)
print("lua_err = " .. lua_err)