Size: a a a

2020 December 04

AS

Arthur Salimkhanov in Tarantool
это просто пример)
источник

R

R-omk in Tarantool
Mons Anderson
Возможно это из-за того, что вызов идёт через call
Надо будет посмотреть, сходу не отвечу.
Насколько я знаю, написание кода для тарантула с ориентированием на коды ошибок не распространено
с 2.4 вроде это вполне возможно,  вот только  vsahrd об этом не знает (а может и норм все)
источник

R

R-omk in Tarantool
коды ошибок только с 2.4   можно использовать
источник

AS

Arthur Salimkhanov in Tarantool
спасибо
источник

LV

Leonid V in Tarantool
R-omk
коды ошибок только с 2.4   можно использовать
C 2.4 можно использовать типы ошибок, создавая свои (CustomError). И валидно опираться на тип, а не на код ошибки.
Так же с 2.4 типы ошибок не меняются на ClientError после "прохода" через netbox
источник

LV

Leonid V in Tarantool
Код ошибки характерен как раз для ClientError и её производных
источник

R

R-omk in Tarantool
Leonid V
C 2.4 можно использовать типы ошибок, создавая свои (CustomError). И валидно опираться на тип, а не на код ошибки.
Так же с 2.4 типы ошибок не меняются на ClientError после "прохода" через netbox
ну да ... типы ошибок и коды  в предалах типа
источник

R

R-omk in Tarantool
R-omk
ну да ... типы ошибок и коды  в предалах типа
или я не так понял  доку... я думал можно завести тип ошибки, и там коды использовать
источник

LV

Leonid V in Tarantool
https://github.com/tarantool/vshard/blob/master/vshard/error.lua - в vshard есть ещё обёрточка.
источник

MO

Maxat Oralbaev in Tarantool
Всем Hello! Есть вопрос, tarantool-authman можно применить под картридже?
источник

LV

Leonid V in Tarantool
R-omk
или я не так понял  доку... я думал можно завести тип ошибки, и там коды использовать
Да, в CustomError (собственные типы ошибок) - коды Up to you. В Client error - они задают формат сообщения
источник

LV

Leonid V in Tarantool
R-omk
или я не так понял  доку... я думал можно завести тип ошибки, и там коды использовать
Попробую чуть распутать:
Создание ClientError через ()
code имеет значение
tarantool> box.error.new(10, "Message"):unpack()
---
- code: 10
 base_type: ClientError
 type: ClientError
 message: Space 'Message' already exists
 trace:
 - file: '[string "return box.error.new(10, "Message"):unpack()"]'
   line: 1
...


Создание ClientError через {}
code - up to you

tarantool> box.error.new{code = 10, reason = "Message"}:unpack()
---
- code: 10
 base_type: ClientError
 type: ClientError
 message: Message
 trace:
 - file: '[string "return box.error.new{code = 10, reason = "Mes..."]'
   line: 1
...


Создание CustomError (Доступно после 2.4)
type - up to you
code - up to you

tarantool> box.error.new("MyType", "Message: %s", "msg"):unpack()
---
- code: 0
 base_type: CustomError
 type: MyType
 custom_type: MyType
 message: 'Message: msg'
 trace:
 - file: '[string "return box.error.new("MyType", "Message: %s",..."]'
   line: 1
...

tarantool> box.error.new{code = 10, type = "MyType", reason = "Message"}:unpack()
---
- code: 10
 base_type: CustomError
 type: MyType
 custom_type: MyType
 message: Message
 trace:
 - file: '[string "return box.error.new{code = 10, type = "MyTyp..."]'
   line: 1
...


При "прохождении"" через netbox
До 2.4 - все ошибки (SystemError и т.п.) будут преобразованы в ClientError
После - что было на сервере, то будет и на клиенте.
источник

AS

Arthur Salimkhanov in Tarantool
Leonid V
Попробую чуть распутать:
Создание ClientError через ()
code имеет значение
tarantool> box.error.new(10, "Message"):unpack()
---
- code: 10
 base_type: ClientError
 type: ClientError
 message: Space 'Message' already exists
 trace:
 - file: '[string "return box.error.new(10, "Message"):unpack()"]'
   line: 1
...


Создание ClientError через {}
code - up to you

tarantool> box.error.new{code = 10, reason = "Message"}:unpack()
---
- code: 10
 base_type: ClientError
 type: ClientError
 message: Message
 trace:
 - file: '[string "return box.error.new{code = 10, reason = "Mes..."]'
   line: 1
...


Создание CustomError (Доступно после 2.4)
type - up to you
code - up to you

tarantool> box.error.new("MyType", "Message: %s", "msg"):unpack()
---
- code: 0
 base_type: CustomError
 type: MyType
 custom_type: MyType
 message: 'Message: msg'
 trace:
 - file: '[string "return box.error.new("MyType", "Message: %s",..."]'
   line: 1
...

tarantool> box.error.new{code = 10, type = "MyType", reason = "Message"}:unpack()
---
- code: 10
 base_type: CustomError
 type: MyType
 custom_type: MyType
 message: Message
 trace:
 - file: '[string "return box.error.new{code = 10, type = "MyTyp..."]'
   line: 1
...


При "прохождении"" через netbox
До 2.4 - все ошибки (SystemError и т.п.) будут преобразованы в ClientError
После - что было на сервере, то будет и на клиенте.
а точно после 2.4 не меняется код?
источник

S

Stix in Tarantool
Maxat Oralbaev
Всем Hello! Есть вопрос, tarantool-authman можно применить под картридже?
Тоже интересно. Неужели никто не знает?
источник

AS

Arthur Salimkhanov in Tarantool
апнулся до 2.6, появился base_type но код меняется на 32
источник

AT

Alexander Turenko in Tarantool
Leonid V
Попробую чуть распутать:
Создание ClientError через ()
code имеет значение
tarantool> box.error.new(10, "Message"):unpack()
---
- code: 10
 base_type: ClientError
 type: ClientError
 message: Space 'Message' already exists
 trace:
 - file: '[string "return box.error.new(10, "Message"):unpack()"]'
   line: 1
...


Создание ClientError через {}
code - up to you

tarantool> box.error.new{code = 10, reason = "Message"}:unpack()
---
- code: 10
 base_type: ClientError
 type: ClientError
 message: Message
 trace:
 - file: '[string "return box.error.new{code = 10, reason = "Mes..."]'
   line: 1
...


Создание CustomError (Доступно после 2.4)
type - up to you
code - up to you

tarantool> box.error.new("MyType", "Message: %s", "msg"):unpack()
---
- code: 0
 base_type: CustomError
 type: MyType
 custom_type: MyType
 message: 'Message: msg'
 trace:
 - file: '[string "return box.error.new("MyType", "Message: %s",..."]'
   line: 1
...

tarantool> box.error.new{code = 10, type = "MyType", reason = "Message"}:unpack()
---
- code: 10
 base_type: CustomError
 type: MyType
 custom_type: MyType
 message: Message
 trace:
 - file: '[string "return box.error.new{code = 10, type = "MyTyp..."]'
   line: 1
...


При "прохождении"" через netbox
До 2.4 - все ошибки (SystemError и т.п.) будут преобразованы в ClientError
После - что было на сервере, то будет и на клиенте.
А у нас в доке нет хорошего описания этих нюансов?
источник

LV

Leonid V in Tarantool
Alexander Turenko
А у нас в доке нет хорошего описания этих нюансов?
Так, чтобы, так нет)
источник

LV

Leonid V in Tarantool
Arthur Salimkhanov
апнулся до 2.6, появился base_type но код меняется на 32
И сервер и клиент (роутер)?
источник

AS

Arthur Salimkhanov in Tarantool
Leonid V
И сервер и клиент (роутер)?
на сторадж код ошибки 3 на роутере уже 32
источник

AS

Arthur Salimkhanov in Tarantool
это на сторадже
источник