Задать вопрос
@szjyakgf

Как избежать ошибок при команде /ban?

Написал код для удаления пользователей из чата:
@dp.message_handler(commands=['ban'])
async def ban(message: types.Message):
    if not message.reply_to_message:
        pass
    else:
        await message.bot.ban_chat_member(message.chat.id, message.reply_to_message.from_user.id)

Но получаю 3 ошибки:
1, если у бота нету прав на удаление пользователей
2, если админ кидает команду на админа
3, если команду использует не админ
Можно как-то их избежать? Например как я поставил проверку на реплай
  • Вопрос задан
  • 62 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 2
@inworkl
Бродяга
Как вариант завернуть в try except

@dp.message_handler(commands=['ban'])
async def ban(message: types.Message):
    try:
        await message.bot.ban_chat_member(message.chat.id, message.reply_to_message.from_user.id)
    except:
        pass


Но по хорошему иметь хендлеры для каждой ошибки, и реструкторизировать код чтобы этих ошибок впринципе не возникало.
Ответ написан
Комментировать
@alexbprofit
Junior SE
try:
     #Ваш код
except:
      #Логика для проблемных случаев
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
SpectrumData Екатеринбург
от 200 000 до 300 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
AST Москва
До 350 000 ₽
18 янв. 2025, в 10:04
50000 руб./за проект
18 янв. 2025, в 09:18
5500 руб./за проект
18 янв. 2025, в 07:20
50000 руб./за проект