box.error()
-
box.
error
{reason = string[, code = number]} Выдача ошибки. При вызове с аргументом из Lua-таблицы значения параметров code и reason будут любыми по желанию пользователя. Результатом будут эти значения.
Параметры: - reason (string) – (строка) описание ошибки, задается пользователем
- code (integer) – (целое число) числовой код ошибки, задается пользователем
-
box.
error
(code, errtext[, errtext ...]) Выдача ошибки. Моделирование ошибки запроса с текстом на основе одной из ошибок Tarantool’а, заданных в файле errcode.h в исходном дереве. Lua-постоянные, которые соответствуют этим ошибкам в Tarantool’е, определяются как элементы
box.error
, напримерbox.error.NO_SUCH_USER == 45
.Параметры: - code (number) – номер предварительно заданной ошибки
- errtext(s) (string) – часть сообщения, которое сопровождает ошибку
Пример:
сообщение
NO_SUCH_USER
= «User '%s' is not found
» (пользователь не найден) – оно включает в себя компонент «%s
», который будет заменен значением параметра errtext. Таким образом, вызовbox.error(box.error.NO_SUCH_USER, 'joe')
илиbox.error(45, 'joe')
приведет к ошибке с сообщением «User 'joe' is not found
» (пользователь „joe“ не найден).Исключение: то, что указано в номере errcode. box.error()
может принимать два типа аргументов:- код ошибки и ее причину/текст (
box.error{code = 555, reason = 'Arbitrary message'}
), - либо объект ошибки (
box.error(err)
).
В обоих случаях ошибка будет записана как последняя системная ошибка.
Пример:
tarantool> e1 = box.error.new({code = 111, reason = 'Сause'}) --- ... tarantool> box.error(e1) --- - error: Сause ... tarantool> box.error{code = 555, reason = 'Arbitrary message'} --- - error: Arbitrary message ... tarantool> box.error() --- - error: Arbitrary message ... tarantool> box.error(box.error.FUNCTION_ACCESS_DENIED, 'A', 'B', 'C') --- - error: A access denied for user 'B' to function 'C' ...