Discord.py обработка ошибок, не выводящих сообщение?

#discord.py

#discord.py

Вопрос:

Я попытался создать сообщение об ошибке, когда у пользователя нет разрешений на использование команды, это потому, что я продолжал получать сообщение об ошибке в консоли, код должен отправлять сообщение в чат, когда у пользователя нет разрешений на его использование, ошибка исчезла с консоли, ноон не выводит сообщение

 @client.command()
@has_permissions(manage_messages=True)
async def clear(ctx, limit: int):
    await ctx.channel.purge(limit = limit)
    await ctx.send('Cleared by {}'.format(ctx.author.mention))

@clear.error
async def clear_error(error, ctx):
    if isinstance(error, MissingPermissions):
        await ctx.send('Sorry, you do not have permissions to do that!')
  

Комментарии:

1. Если он не выводит сообщение, это означает, что ошибки нет MissingPermissions . Не могли бы вы попробовать добавить print(error) обработчик ошибок и сообщить нам, что произойдет?

2. Кроме того, у меня есть точно такой же код для моего бота, но вместо проверки MissingPermissions я проверяю CheckFailure , что для меня работает нормально.

3. Я попытался ввести print(error) свой код и запустить его, но консоль по-прежнему отображается как пустая @kr8gz. Я также пытался использовать CheckFailure в коде и все еще сталкивался с той же проблемой

Ответ №1:

Когда вы используете функцию обработки ошибок, вам нужно сделать async def clear_error(ctx, error): . По сути, вам просто нужно поменять местами параметры.

 @clear.error
async def clear_error(ctx, error):
    if isinstance(error, MissingPermissions):
        await ctx.send('Sorry, you do not have permissions to do that!')
  

Комментарии:

1. Это сработало, я бы никогда этого не нашел, спасибо!