【发布时间】:2012-02-03 21:19:28
【问题描述】:
我有一个 lua 函数,它接受多个参数并返回与参数一样多的值。每个返回值对应一个参数。为了说明,考虑一个从数据库中读取键/值对值的函数:
val1, val2, val3 = my_function("key1", "key2", "key3");
val1 = my_function("key1");
从my_function 返回错误的最佳方法是什么?(例如,如果提供的“密钥”无效)
我知道一种方法是返回两个错误值,nil 和一个错误字符串。这是最好的方法吗?例如:
val1, val2, val3 = my_function("key1", "key2", "key3");
if val1 then
-- Use val1, val2, and val3.
else
print("ERROR: " .. val2);
end
编辑
补充几点:
- 正在使用
lua_pcall()从 C 程序中执行 lua 脚本。 - 如果脚本失败,C 程序不得中止。
-
my_function()用 C 实现。 - 当
my_function()失败时,它还应该返回一个错误代码(或消息),指出失败的原因。
【问题讨论】:
标签: lua