Перейти к содержанию

Обработка исключений

Рекомендуемый способ обработки ошибок - это блок try except внутри хэндлера, но для общих случаев вы можете добавить обработчик ошибок на уровень роутера или диспетчера.

@router.error(ExceptionTypeFilter(MyCustomException), F.update.message.as_("message"))
async def handle_my_custom_exception(event: ErrorEvent, message: Message):
    # do something with error
    await message.answer("Oops, something went wrong!")


@router.error()
async def error_handler(event: ErrorEvent):
    logger.critical("Critical error caused by %s", event.exception, exc_info=True)
    # do something with error
    ...

Событие исключения

aliceio.types.error_event.ErrorEvent

Bases: AliceEvent

Внутренннее событие, используется для получения ошибок при обработке событий.

event: AliceEvent property

exception: Exception instance-attribute

update: Update instance-attribute

Исключения библиотеки

aliceio.exceptions.AliceioError

Bases: Exception

Базовое исключение для всех ошибок aliceio.

aliceio.exceptions.DetailedAliceioError

Bases: AliceioError

Базовое исключение для всех ошибок aliceio с подробным сообщением.

aliceio.exceptions.AliceAPIError

Bases: DetailedAliceioError

Базовое исключение для всех ошибок API Алисы.

aliceio.exceptions.AliceNetworkError

Bases: AliceAPIError

Базовое исключение для всех ошибок сети.

aliceio.exceptions.AliceNoCredentialsError

Bases: AliceAPIError

Исключение при использовании API Алисы без токена авторизации.

aliceio.exceptions.AliceWrongFieldError

Bases: AliceAPIError

Исключение при создании модели с неправильным(и) полем(ями).

aliceio.exceptions.ClientDecodeError

Bases: AliceioError

Исключение возникает, когда клиент не может декодировать ответ (неверный ответ или запрос и тд).

message = message instance-attribute

original = original instance-attribute

data = data instance-attribute

Примеры