如何将错误添加到特定命令 discord.py

Posted

技术标签:

【中文标题】如何将错误添加到特定命令 discord.py【英文标题】:How can I add an error to specific commands discord.py 【发布时间】:2021-03-11 23:40:31 【问题描述】:

我希望每个命令都有错误,而不是使用无法具体说明的错误事件并对可能需要向用户提供额外帮助的命令进行故障排除。有什么方法可以将错误添加到命令中?


@client.command(aliases=['translate', 'translator'])
async def trans(ctx, lang=None, *, args=None):

    t = Translator()
    a = t.translate(args, dest=lang)

    if lang == None:
        await ctx.send(f'ctx.author.mention, please use a Valid destination language. You can view them with ``&languages``')
        return

    if args == None:
        await ctx.send(f'ctx.author.mention, please provide a message in English to translate!``')
        return

    if isinstance(error, commands.CommandInvokeError):
            embed = discord.Embed(title="API Error!", description=f"ctx.author.mention, google translate's API is bugged, this command could fix by sending it another time", color=0xE74C3C)
            message = await ctx.message.channel.send(embed=embed, delete_after=20)


【问题讨论】:

不,你必须把它放在错误处理程序中 但是,如果你犯了错误,我该如何为每个命令制作错误消息呢? 检查我的答案 【参考方案1】:

你不能那样做,你必须使用错误处理程序

@bot.command()
async def some_command_name(ctx):
    # ...


@some_command_name.error # ← name of the command + .error
async def some_command_name_error(ctx, error):
    # Handle all the errors for a command here
    if isinstance(error, commands.CommandInvokeError):
        await ctx.send("API error")

【讨论】:

以上是关于如何将错误添加到特定命令 discord.py的主要内容,如果未能解决你的问题,请参考以下文章

如何将特定变量添加到不同的调试和发布风格

如何将用户添加到 svn subversion 中的特定分支(批处理脚本或 api)

如何将斜杠命令隐藏到特定用户或频道 Discord.js v13

如何将android添加到cordova平台?路径错误?

命令删除所有角色并将特定角色添加到提到的用户

如何删除 Angular 表单组中的特定错误