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

Ошибки

Все исключения наследуются от FpxError. Можно ловить конкретные или целые группы.


Дерево ошибок

FpxError
├── FpxAccountError
│   ├── FpxGetChatsError
│   ├── FpxMessageDeliverError
│   ├── FpxRaisingLotError
│   ├── FpxRefundError
│   ├── FpxRequestError
│   ├── FpxLotEditingError
│   ├── FpxAnswerReviewError
│   ├── FpxClientNotAttachedError
│   ├── FpxGetGameIDError
│   ├── FpxGetLastCategoryLotError
│   ├── FpxGetChatDataError
│   ├── FpxGetLotEditorInfoError
│   ├── FpxGetLotInfoError
│   ├── FpxGetOrderInfoError
│   ├── FpxGetUserDataError
│   ├── FpxGetUserSellsError
│   └── FpxGetProfileError
├── FpxParseError
│   └── FpxNullDataError
├── FpxRunnerError
│   └── FpxCriticalRunnerError
└── FpxHandlerError
    ├── FpxAttributeError
    └── FpxCommandArgsError

Группы ошибок

FpxAccountError — всё что связано с запросами к FunPay. Лови её если не важно что именно упало.

FpxParseError — проблемы с парсингом HTML. Обычно означает что FunPay изменил вёрстку.

FpxRunnerError — проблемы с фоновым движком.

FpxHandlerError — ошибки хендлеров (неправильные аргументы и т.д.).


Конкретные ошибки

Класс Когда кидается
FpxError Базовая ошибка, ловит всё
FpxMessageDeliverError Сообщение не отправилось
FpxRaisingLotError Не удалось поднять лоты (нет лотов или ошибка)
FpxRefundError Возврат не прошёл
FpxRequestError Сеть упала, сервер не ответил, превышены попытки
FpxLotEditingError Цена не поменялась после редактирования
FpxAnswerReviewError Ответ на отзыв не сохранился
FpxClientNotAttachedError Попытка вызвать .answer() у объекта без привязки к клиенту
FpxNullDataError Парсер получил пустую страницу (слетела сессия/изменилась вёрстка)
FpxCriticalRunnerError Критический сбой раннера
FpxAttributeError Неправильно переданы атрибуты в хендлер
FpxCommandArgsError В команде не хватает аргументов

Примеры

Ловим конкретную ошибку:

from fpx.utils.errors import FpxLotEditingError

try:
    await fp.account.editor.change_lot_price('123', '100')
except FpxLotEditingError as e:
    print(f'Цена не поменялась: {e.message}')

Ловим группу:

from fpx.utils.errors import FpxAccountError

try:
    await message.answer('Привет')
    await fp.account.order.refund_order('123')
except FpxAccountError as e:
    print(f'Ошибка: {e.message}')