首页 > 解决方案 > discord.py 你如何忽略错误并继续前进

问题描述

我想发出一个 dm 公告命令,但是一旦它收到像 dming 本身这样的错误(调用错误)或者当某人的 dm 被关闭(禁止)时,命令完全停止,我也尝试过使用 pass,同样的事情也会发生

我正在使用的代码

@bot.command()
async def dann(ctx):
    await ctx.message.delete()
    for member in ctx.guild.members:
        await member.send("test")

    print("Action completed: Message all")

@dann.error
async def man(ctx, error):
   if isinstance(error, commands.CommandInvokeError):
       print('fail')
   elif isinstance(error, commands.Forbidden):
         print('dms closed')

或者

@bot.command()
async def dann(ctx):
    await ctx.message.delete()
    try:
       for member in ctx.guild.members:
           await member.send("test")
    except:
        pass
    print("Action completed: Message all")

如果发现错误,机器人有没有办法继续前进?

标签: pythondiscorddiscord.py

解决方案


您正在寻找的是“ Python Try Expect”

它看起来像这样:

   try: ## The try block will generate an exception, because x is not defined
      print(x)
   except:
      print("An exception occurred")

您可以在以下来源中找到更多信息:


推荐阅读