Ошибки
Все исключения наследуются от 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}')
Ловим группу: