为什么错误处理在 repl 中不起作用,但在 VSCode 中却起作用? discord.py

Why error handling doesn't work in repl but in VSCode it does? discord.py

我正在尝试处理我的 discord 机器人本地命令的错误,我收到以下错误 discord.ext.commands.errors.CommandInvokeError:命令引发异常:AttributeError:'Command' object has no属性 'MissingRequiredArgument' 只有当我在 repl 中执行代码而不是在 VSCode.I 中执行代码时才会发生这种情况还尝试了以下

commands.errors.MissingRequiredArgument
@youtube.error
async def youtube_error(ctx,error):
    if isinstance(error, commands.MissingRequiredArgument):
        await ctx.send("Some text")
@tts.error
async def tts_error(ctx,error):
    if isinstance(error, commands.MissingRequiredArgument):
        await ctx.send("Some text")

你应该发送完整的代码,但如果我理解得很好,问题是在你的文件中存在一个名为 commandsCommand 对象,因此 MissingRequiredArgument 被解释为repl 作为 Command 对象属性,这显然不存在。
你的代码中应该有这样的东西:

@Bot.command()
async def commands(ctx, *args):
    ...

Repl 与 VS Code

Repl 适用于 beginners/dummies,Visual Studio 代码不适用。
VS Code 的解释器可能理解 `commands` 不是指你的命令,所以它不会引发任何错误。