Tarantool CE/EE Documentation portal logo
Помощь
Обновлена 15 сентября 2026 г. в 08:55

Ошибка модуля

enum box_error_code

Полный список ошибок приведён в заголовочном файле с кодами ошибок Tarantool.

type box_error_t

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

const char * box_error_type(const box_error_t *error)

Вернуть тип ошибки, например "ClientError", "SocketError" и т. д.

Параметры:

  • error (box_error_t*) — ошибка

Возвращает

строка, отличная от NULL

uint32_t box_error_code(const box_error_t *error)

Вернуть код ошибки IPROTO

Параметры:

  • error (box_error_t*) — ошибка

Возвращает

box_error_code

const char * box_error_message(const box_error_t *error)

Вернуть сообщение об ошибке

Параметры:

  • error (box_error_t*) — ошибка

Возвращает

строка, отличная от NULL

box_error_t * box_error_last(void)

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

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

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

Если требуется вернуть собственное сообщение об ошибке, в хранимых процедурах на C необходимо установить последнюю ошибку с помощью box_error_set(). Последнюю ошибку API можно повторно выбросить клиенту IPROTO, сохранив текущее значение и вернув -1 в 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

  • format (const char*) — нет

  • ... — аргументы формата

См. также: код ошибки IPROTO

box_error_raise(code, format, ...)

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