Исключения
Эти классы исключений используются в реализациях клиента.
Базовые
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
Строка сообщения