Skip to content

Исключения

Эти классы исключений используются в реализациях клиента.

Базовые

class horizon.commons.exceptions.base.ApplicationError

Базовый класс для всех исключений, вызываемых Horizon.

  • Атрибуты: details Детали, связанные с конкретной ошибкой

message Строка сообщения

abstract property details : Any

Детали, связанные с конкретной ошибкой

abstract property message : str

Строка сообщения

Авторизация

class horizon.commons.exceptions.auth.AuthorizationError(message: str, details: Any = None)

Ошибка запроса авторизации.

  • Атрибуты: details Детали, связанные с конкретной ошибкой

message Строка сообщения

Примеры

>>> from horizon.commons.exceptions import AuthorizationError
>>> raise AuthorizationError("Пользователь 'test' отключен")
Traceback (most recent call last):
horizon.commons.exceptions.auth.AuthorizationError: Пользователь 'test' отключен

property details : Any

Детали, связанные с конкретной ошибкой

property message : str

Строка сообщения

Разрешения

class horizon.commons.exceptions.permission.PermissionDeniedError(required_role: str, actual_role: str)

Доступ запрещен для выполнения запрошенного действия.

  • Атрибуты: details Детали, связанные с конкретной ошибкой

message Строка сообщения

Примеры разрешений

>>> from horizon.commons.exceptions import PermissionDeniedError
>>> raise PermissionDeniedError(required_role="DEVELOPER", actual_role="GUEST")
Traceback (most recent call last):
horizon.commons.exceptions.PermissionDeniedError: Доступ запрещен. Пользователь имеет роль GUEST, но действие требует как минимум DEVELOPER.

required_role : str

Требуемая роль для выполнения действия

actual_role : str

Фактическая роль пользователя

property message permission : str

Строка сообщения

property details : dict[str, Any]

Детали, связанные с конкретной ошибкой

class horizon.commons.exceptions.bad_request.BadRequestError(reason: str)

Ошибка некорректного запроса.

Это исключение должно быть вызвано, когда запрос не может быть обработан из-за ошибок на стороне клиента (например, недопустимых данных, дублирующихся записей).

Примеры некорректного запроса

>>> from horizon.commons.exceptions import BadRequestError
>>> raise BadRequestError("Обнаружено дублирование имени пользователя. Каждое имя пользователя должно встречаться только один раз.")
Traceback (most recent call last):
horizon.commons.exceptions.BadRequestError: Обнаружено дублирование имени пользователя. Каждое имя пользователя должно встречаться только один раз.

reason : str

Сообщение о причине некорректного запроса

Сущность

class horizon.commons.exceptions.entity.EntityNotFoundError(entity_type: str, field: str, value: Any)

Сущность не найдена.

  • Атрибуты: details Детали, связанные с конкретной ошибкой

message Строка сообщения

Примеры сущности

>>> from horizon.commons.exceptions import EntityNotFoundError
>>> raise EntityNotFoundError("User", "username", "test")
Traceback (most recent call last):
horizon.commons.exceptions.entity.EntityNotFoundError: Пользователь с username='test' не найден

entity_type : str

Тип сущности

field : str

Поле идентификатора сущности

value : Any

Значение идентификатора сущности

property message entity : str

Строка сообщения

property details entity : dict[str, Any]

Детали, связанные с конкретной ошибкой

class horizon.commons.exceptions.entity.EntityAlreadyExistsError(entity_type: str, field: str, value: Any)

Сущность с таким же идентификатором уже существует.

  • Атрибуты: details Детали, связанные с конкретной ошибкой

message Строка сообщения

Примеры сущности 2

>>> from horizon.commons.exceptions import EntityNotFoundError
>>> raise EntityAlreadyExistsError("User", "username", "test")
Traceback (most recent call last):
horizon.commons.exceptions.entity.EntityAlreadyExistsError: Пользователь с username='test' уже существует

entity_type 2 : str

Тип сущности

field 2 : str

Поле идентификатора сущности

value 2 : Any

Значение идентификатора сущности

property message 2 : str

Строка сообщения

property details 2 : dict[str, Any]

Детали, связанные с конкретной ошибкой

Сервис

class horizon.commons.exceptions.service.ServiceError(message: str)

Сервис, используемый приложением, не ответил должным образом.

  • Атрибуты: message Строка сообщения

Примеры сервиса

>>> from horizon.commons.exceptions import ServiceError
>>> raise ServiceError("Некоторый ответ сервера недействителен")
Traceback (most recent call last):
horizon.commons.exceptions.service.ServiceError: Некоторый ответ сервера недействителен

property message service : str

Строка сообщения