У меня есть функция lua, которая принимает несколько параметров и возвращает столько значений, сколько есть параметров. Каждое возвращаемое значение соответствует параметру. Для иллюстрации рассмотрим функцию, которая считывает значение для пары ключ / значение из базы данных:
val1, val2, val3 = my_function("key1", "key2", "key3");
val1 = my_function("key1");
Как лучше всего вернуть ошибку из my_function
? (например, если предоставлен " key "недействителен)
Я понимаю, что один из способов - вернуть два значения при ошибке, nil
и строку ошибки. Это лучший подход? Например:
val1, val2, val3 = my_function("key1", "key2", "key3");
if val1 then
-- Use val1, val2, and val3.
else
print("ERROR: " .. val2);
end
Редактировать
Некоторые дополнительные моменты:
lua_pcall ()
. my_function ()
реализована в C. my_function ()
дает сбой, он также должен вернуть код ошибки (или сообщение) с указанием причины сбоя.