查看: 34|回复: 2

Lua 高级教程——错误处理(pcall/xpcall)

[复制链接]

48

主题

75

回帖

1991

积分

金牌会员

积分
1991
QQ
发表于 2026-5-27 14:18:09 | 显示全部楼层 |阅读模式
Lua 用 pcall(保护调用) 捕获运行时错误,避免程序崩溃。

1. pcall 基础
local function div(a,b)
  if b==0 then error("除数不能为0") end
  return a/b
end

local ok, res = pcall(div, 10, 0)
if ok then
  print("结果:", res)
else
  print("错误:", res)  -- 错误:除数不能为0
end
2. xpcall(带错误处理函数)
local function errHandler(err)
  return "捕获错误:"..err
end

local ok, res = xpcall(div, errHandler, 10, 0)
print(res)  -- 捕获错误:除数不能为0



0

主题

58

回帖

1350

积分

金牌会员

积分
1350
发表于 2026-5-28 16:52:19 | 显示全部楼层
感谢分享,学习了!

35

主题

96

回帖

1356

积分

金牌会员

积分
1356
QQ
发表于 2026-5-28 18:34:23 | 显示全部楼层
很不错,感谢楼主分享,我学到了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表