box.error.new()
-
box.error.
new
(code, errtext[, errtext ...]) Create an error object, but not throw it as box.error() does. This is useful when error information should be saved for later retrieval. To set an error as the last explicitly use box.error.set().
Parameters: - code (number) – number of a pre-defined error
- errtext(s) (string) – part of the message which will accompany the error
Example:
tarantool> e=box.error.new{code=5,reason='A',type='B'} --- ... tarantool> e:unpack() --- - code: 5 base_type: CustomError type: B custom_type: B message: A trace: - file: '[string "e=box.error.new{code=5,reason=''A'',type=''B''}"]' line: 1 ... tarantool> box.error.last() --- - null
Beginning in version 2.4.1 there is a session_settings setting which affects structure of error objects. If
error_marshaling_enabled
is changed totrue
, then the object will have the MP_EXT type and the MP_ERROR subtype. Using the binary protocol, in the body of a packet that the server could send in response tobox.error.new()
, one will see: the encoding of MP_EXT according to the MessagePack specification (usually 0xc7), followed by the encoding of MP_ERROR (0x03), followed by the encoding of MP_ERROR_STACK (0x81), followed by all of the MP_ERROR_STACK components (MP_ARRAY which contains MP_MAP which contains keys MP_ERROR_MESSAGE, MP_ERROR_CODE, etc.) that are described and illustrated in section MessagePack extensions – The ERROR type. The map field for error object “type” will have key = MP_ERROR_TYPE, the map field for error object “code” will have key = MP_ERROR_CODE, the map field for error object “message” will have key = MP_ERROR_MESSAGE.