Module error | Tarantool
Документация на русском языке
поддерживается сообществом

Module error

enum box_error_code

For a complete list of errors, refer to the Tarantool error code header file.

type box_error_t

Ошибка – содержит информацию об ошибке.

const char *box_error_type(const box_error_t *error)

Возврат типа ошибки, например, «ClientError», «SocketError» и т.д.

Параметры:
Результат:

ненулевая строка

uint32_t box_error_code(const box_error_t *error)

Возврат кода ошибки IPROTO

Параметры:
Результат:

box_error_code

const char *box_error_message(const box_error_t *error)

Возврат сообщения ошибки

Параметры:
Результат:

ненулевая строка

box_error_t *box_error_last(void)

Получение информации о последней ошибке вызова API.

Обработка ошибок в Tarantool больше всего похожа на errno в стандартной библиотеке языка С libc. Все вызовы API возвращают -1 или NULL в случае ошибки. Внутренний указатель на тип box_error_t задается функциями, чтобы указать, что пошло не так. Это значение показательно, если вызов API не прошел (вернулось -1 или NULL).

Выполненная функция в некоторых случаях также может затрагивать последнюю ошибку. Необязательно удалять последнюю ошибку перед вызовом API-функций. Возвращаемый объект применим только до следующего вызова любой API-функции.

Следует задать последнюю ошибку с помощью box_error_set() из хранимых процедур на языке C, если необходимо вернуть специальное сообщение об ошибке. Можно повторно сгенерировать последнюю API-ошибку в клиент IPROTO, сохранив текущее значение и вернув -1 to Tarantool из хранимой процедуры.

Результат:последняя ошибка
void box_error_clear(void)

Удаление последней ошибки.

int box_error_set(const char *file, unsigned line, uint32_t code, const char *format, ...)

Определение последней ошибки.

Параметры:
  • file (const char*) –
  • line (unsigned) –
  • code (uint32_t) – IPROTO error code
  • format (const char*) –
  • ... – аргументы формата

См. также IPROTO error code

box_error_raise(code, format, ...)

Обратно совместимые определения API.

Нашли ответ на свой вопрос?
Обратная связь