mksmvnv
@mksmvnv

Как создать хэндлер Aiogram для обработки ошибки на Python?

У меня вот такая ситуация:

@router.callback_query(Category.filter())
async def select_category(callback: CallbackQuery, callback_data: Category):
    category = callback_data.category
    price = callback_data.price
    await callback.message.answer('Введите цену на товар в юанях:')
    await callback.answer()


@router.message(F.text)
async def calculation(message: Message):
    if message.text.isdigit():
        await message.answer(message.text)
    else:
        await message.answer('‍♂️ Некорректное число.')

Я хочу, чтобы в случае некорректного ввода пользователем цены в хэндлере calculation, после вывода текста "Некорректное число." его перекидывало обратно к вопросу из хэндлера select_category "Введите цену на товар в юанях:". Хотел сначала вызвать хэндлер в хэндлере)) Но мне сказали, так не делается и нужно делать отдельный хэндлер для обработки ошибок. Вот только я не знаю, как его реализовать. Буду благодарен за помощь!
  • Вопрос задан
  • 162 просмотра
Решения вопроса 1
@twistfire92
Python backend developer
Вам тут нужна машина состояний (гуглите aiogram FSM), информации в интернете достаточно много. С ее помощью сможете регистрировать текущее состояние каждого пользователя. Например сейчас пользователь в состоянии ввода цены на товар, поэтому в следующем сообщении которое он введет ожидается число. Если приходится выводить ошибку - выводите и не меняйте состояние пользователя
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы