国际访客建议访问 Primers 编程伙伴 国际版站点 > Lua 教程 > xpcall 以获得更好的体验。

# Lua 的 xpcall 函数

请查看 Lua 标准库函数列表 了解更多相关 API。
xpcall (f, msgh [, arg1, ···])

!subtitle:说明

以保护模式调用函数 fn(arg1, ...),并将错误对象传递给错误消息处理器 msgh。保护模式意味着函数内部的任何错误都都不会被传播,而是会被捕获并返回。

!subtitle:参数

  • fn - 要调用的函数

  • msgh - 错误消息处理器

  • arg1, ... - 调用 fn 时的参数

!subtitle:返回值

  • 成功时返回 truefn 的返回值

  • 失败时返回 false

# 示例

运行示例

function demo1(x, y)
    return x + y
end

function demo2()
    error("出错了")
end

-- 消息处理器
function messageHandler(msg)
    print(msg)
end

print(xpcall(demo1, messageHandler, 3, 7))
print(xpcall(demo2, messageHandler))

# 推荐阅读

xpcall - Lua 5.4 Reference Manual

本文 更新于: 2025-11-27 09:38:13 创建于: 2025-11-27 09:38:13