Error handling 在纯Lua中,用什么惯用方法来表示错误?

Error handling 在纯Lua中,用什么惯用方法来表示错误?,error-handling,lua,Error Handling,Lua,我正在构建一组公共库,用于Lua解释器的嵌入式实例(目标受众是特定产品的用户)。假设我没有权限更改Lua可执行文件的功能,并且只有基本的标准Lua库(数学、字符串、…,例外是没有io) 在纯Lua库中处理运行时错误的惯用方法是什么 我曾考虑过返回nil,但这并不表示出哪里出了问题,特别是当错误发生在嵌套较深的地方时。我的下一个想法是返回两个值,nil和一个错误代码或描述。我还考虑了一组类似于WindowsAPI的GetLastError(以及相应的SetError)的全局函数 你用什么?您认为各

我正在构建一组公共库,用于Lua解释器的嵌入式实例(目标受众是特定产品的用户)。假设我没有权限更改Lua可执行文件的功能,并且只有基本的标准Lua库(数学、字符串、…,例外是没有io)

在纯Lua库中处理运行时错误的惯用方法是什么

我曾考虑过返回
nil
,但这并不表示出哪里出了问题,特别是当错误发生在嵌套较深的地方时。我的下一个想法是返回两个值,
nil
和一个错误代码或描述。我还考虑了一组类似于WindowsAPI的GetLastError(以及相应的SetError)的全局函数


你用什么?您认为各种方法的各种优点/缺点是什么?我是否应该考虑一些更激进的东西,比如包装<代码> PCALID<代码>中的所有内容,并故意索引<代码> USER DATABOS/CONT>引起错误?

< P>无法从恢复中恢复的错误。对于这些,请调用
error
。否则,返回
nil
false
和错误消息是标准的Lua方法