Top.Mail.Ru
Модуль error | Tarantool
Tarantool
Узнайте содержание релиза 2.8

Модуль error

enum box_error_code
enumerator ::ER_UNKNOWN
enumerator ::ER_ILLEGAL_PARAMS
enumerator ::ER_MEMORY_ISSUE
enumerator ::ER_TUPLE_FOUND
enumerator ::ER_TUPLE_NOT_FOUND
enumerator ::ER_UNSUPPORTED
enumerator ::ER_NONMASTER
enumerator ::ER_READONLY
enumerator ::ER_INJECTION
enumerator ::ER_CREATE_SPACE
enumerator ::ER_SPACE_EXISTS
enumerator ::ER_DROP_SPACE
enumerator ::ER_ALTER_SPACE
enumerator ::ER_INDEX_TYPE
enumerator ::ER_MODIFY_INDEX
enumerator ::ER_LAST_DROP
enumerator ::ER_TUPLE_FORMAT_LIMIT
enumerator ::ER_DROP_PRIMARY_KEY
enumerator ::ER_KEY_PART_TYPE
enumerator ::ER_EXACT_MATCH
enumerator ::ER_INVALID_MSGPACK
enumerator ::ER_PROC_RET
enumerator ::ER_TUPLE_NOT_ARRAY
enumerator ::ER_FIELD_TYPE
enumerator ::ER_FIELD_TYPE_MISMATCH
enumerator ::ER_SPLICE
enumerator ::ER_UPDATE_ARG_TYPE
enumerator ::ER_TUPLE_IS_TOO_LONG
enumerator ::ER_UNKNOWN_UPDATE_OP
enumerator ::ER_UPDATE_FIELD
enumerator ::ER_FIBER_STACK
enumerator ::ER_KEY_PART_COUNT
enumerator ::ER_PROC_LUA
enumerator ::ER_NO_SUCH_PROC
enumerator ::ER_NO_SUCH_TRIGGER
enumerator ::ER_NO_SUCH_INDEX
enumerator ::ER_NO_SUCH_SPACE
enumerator ::ER_NO_SUCH_FIELD
enumerator ::ER_EXACT_FIELD_COUNT
enumerator ::ER_INDEX_FIELD_COUNT
enumerator ::ER_WAL_IO
enumerator ::ER_MORE_THAN_ONE_TUPLE
enumerator ::ER_ACCESS_DENIED
enumerator ::ER_CREATE_USER
enumerator ::ER_DROP_USER
enumerator ::ER_NO_SUCH_USER
enumerator ::ER_USER_EXISTS
enumerator ::ER_PASSWORD_MISMATCH
enumerator ::ER_UNKNOWN_REQUEST_TYPE
enumerator ::ER_UNKNOWN_SCHEMA_OBJECT
enumerator ::ER_CREATE_FUNCTION
enumerator ::ER_NO_SUCH_FUNCTION
enumerator ::ER_FUNCTION_EXISTS
enumerator ::ER_FUNCTION_ACCESS_DENIED
enumerator ::ER_FUNCTION_MAX
enumerator ::ER_SPACE_ACCESS_DENIED
enumerator ::ER_USER_MAX
enumerator ::ER_NO_SUCH_ENGINE
enumerator ::ER_RELOAD_CFG
enumerator ::ER_CFG
enumerator ::ER_UNUSED60
enumerator ::ER_UNUSED61
enumerator ::ER_UNKNOWN_REPLICA
enumerator ::ER_REPLICASET_UUID_MISMATCH
enumerator ::ER_INVALID_UUID
enumerator ::ER_REPLICASET_UUID_IS_RO
enumerator ::ER_INSTANCE_UUID_MISMATCH
enumerator ::ER_REPLICA_ID_IS_RESERVED
enumerator ::ER_INVALID_ORDER
enumerator ::ER_MISSING_REQUEST_FIELD
enumerator ::ER_IDENTIFIER
enumerator ::ER_DROP_FUNCTION
enumerator ::ER_ITERATOR_TYPE
enumerator ::ER_REPLICA_MAX
enumerator ::ER_INVALID_XLOG
enumerator ::ER_INVALID_XLOG_NAME
enumerator ::ER_INVALID_XLOG_ORDER
enumerator ::ER_NO_CONNECTION
enumerator ::ER_TIMEOUT
enumerator ::ER_ACTIVE_TRANSACTION
enumerator ::ER_NO_ACTIVE_TRANSACTION
enumerator ::ER_CROSS_ENGINE_TRANSACTION
enumerator ::ER_NO_SUCH_ROLE
enumerator ::ER_ROLE_EXISTS
enumerator ::ER_CREATE_ROLE
enumerator ::ER_INDEX_EXISTS
enumerator ::ER_TUPLE_REF_OVERFLOW
enumerator ::ER_ROLE_LOOP
enumerator ::ER_GRANT
enumerator ::ER_PRIV_GRANTED
enumerator ::ER_ROLE_GRANTED
enumerator ::ER_PRIV_NOT_GRANTED
enumerator ::ER_ROLE_NOT_GRANTED
enumerator ::ER_MISSING_SNAPSHOT
enumerator ::ER_CANT_UPDATE_PRIMARY_KEY
enumerator ::ER_UPDATE_INTEGER_OVERFLOW
enumerator ::ER_GUEST_USER_PASSWORD
enumerator ::ER_TRANSACTION_CONFLICT
enumerator ::ER_UNSUPPORTED_ROLE_PRIV
enumerator ::ER_LOAD_FUNCTION
enumerator ::ER_FUNCTION_LANGUAGE
enumerator ::ER_RTREE_RECT
enumerator ::ER_PROC_C
enumerator ::ER_UNKNOWN_RTREE_INDEX_DISTANCE_TYPE
enumerator ::ER_PROTOCOL
enumerator ::ER_UPSERT_UNIQUE_SECONDARY_KEY
enumerator ::ER_WRONG_INDEX_RECORD
enumerator ::ER_WRONG_INDEX_PARTS
enumerator ::ER_WRONG_INDEX_OPTIONS
enumerator ::ER_WRONG_SCHEMA_VERSION
enumerator ::ER_MEMTX_MAX_TUPLE_SIZE
enumerator ::ER_WRONG_SPACE_OPTIONS
enumerator ::ER_UNSUPPORTED_INDEX_FEATURE
enumerator ::ER_VIEW_IS_RO
enumerator ::ER_UNUSED114
enumerator ::ER_SYSTEM
enumerator ::ER_LOADING
enumerator ::ER_CONNECTION_TO_SELF
enumerator ::ER_KEY_PART_IS_TOO_LONG
enumerator ::ER_COMPRESSION
enumerator ::ER_CHECKPOINT_IN_PROGRESS
enumerator ::ER_SUB_STMT_MAX
enumerator ::ER_COMMIT_IN_SUB_STMT
enumerator ::ER_ROLLBACK_IN_SUB_STMT
enumerator ::ER_DECOMPRESSION
enumerator ::ER_INVALID_XLOG_TYPE
enumerator ::ER_ALREADY_RUNNING
enumerator ::ER_INDEX_FIELD_COUNT_LIMIT
enumerator ::ER_LOCAL_INSTANCE_ID_IS_READ_ONLY
enumerator ::ER_BACKUP_IN_PROGRESS
enumerator ::ER_READ_VIEW_ABORTED
enumerator ::ER_INVALID_INDEX_FILE
enumerator ::ER_INVALID_RUN_FILE
enumerator ::ER_INVALID_VYLOG_FILE
enumerator ::ER_CHECKPOINT_ROLLBACK
enumerator ::ER_VY_QUOTA_TIMEOUT
enumerator ::ER_PARTIAL_KEY
enumerator ::ER_TRUNCATE_SYSTEM_SPACE
enumerator ::box_error_code_MAX
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

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

enum 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.