Задать вопрос
@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:
      #Логика для проблемных случаев
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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