函数:xpcall 捕获处理报错

函数名称:捕获处理报错

函数功能:捕获错误并调用自定义错误处理函数,执行成功返回 true,失败返回 false

函数方法

ok,err = xpcall(func, errorhand,a1,a2,...)

参数 类型 必填 说明
func function 要执行的函数
errorhand function 错误处理函数
a1 - 需要传递的给 func 的参数
返回值 类型 说明
ok boolean true - 执行成功,false - 执行失败
err string ok 为 true 时返回正确内容,false 返回错误信息

函数示例

--示例1
local function err_handle(msg)
    return msg -- 返回错误信息给 xpcall
end

local function test()
    local a = nil
  dialog(a.b) -- 故意报错:attempt to index global 'a' (a nil value)
end

-- 执行
local ok, err = xpcall(test, err_handle)
if not ok then
  dialog("执行失败,错误:"..err)
end
--示例2
local function err_handle(msg)
    return msg -- 返回错误信息给 xpcall
end

local function add(x, y)
    return x + y
end

local ok, err = xpcall(add, err_handle, nil, 20)--x 为 nil
if ok then
    dialog("执行成功:"..err)
else
    dialog("执行失败,错误:".. err)
end

注意事项

  • 加密后可能无法获取到具体报错信息,推荐用于源码调试阶段。
Copyright 北京帮你玩科技有限公司 2026 all right reserved,powered by Gitbook该文章修订时间: 2026-07-03 12:40:38

results matching ""

    No results matching ""