Lua 的 error 函数是一个用于显式抛出错误的内置函数,它会中断当前程序的正常执行流程。该函数有两种调用形式:
error(message, level)error(message)
参数说明:
message:字符串类型的错误信息,是必选参数level:可选参数,指定错误发生的位置层级,默认为1(表示调用error的位置)
使用示例:
function divide(a, b)
if b == 0 then
error("除数不能为零") -- 抛出错误
end
return a / b
end
-- 调用示例
local ok, result = pcall(divide, 10, 0)
if not ok then
print("发生错误:", result) -- 输出:发生错误:除数不能为零
end
错误处理建议:
- 通常在函数参数检查或前置条件验证时使用
error - 建议配合
pcall/xpcall使用以实现错误捕获 - 生产代码中应该提供有意义的错误信息
与assert的区别:
error总是抛出错误assert只在条件为false时抛出错误assert允许自定义错误消息
高级用法:
可以抛出table类型的错误信息:
error({
code = 1001,
msg = "无效的参数",
detail = "参数类型应为number"
})
在Lua 5.2+版本中,error函数还支持第三个参数,用于控制是否在错误信息中包含调用栈信息。


1737

被折叠的 条评论
为什么被折叠?



