Python 函数导入后不起作用

时间:2021-02-18 22:27:45

标签: python python-3.x function discord discord.py

我有一个不和谐的机器人,我正在尝试创建一个不同的文件,其中我只有可以处理不同类型错误的函数..

文件中的示例 errorHandling.py

async def on_error(ctx, error):
    if isinstance(error, commands.MissingRequiredArgument):
        await ctx.send("heh")
        return

在我的 main.py 中我只是

from errorHandler import *

对吗?

然后

@Client.event
async def onerr():
    await on_error()

机器人正在运行,但是当我输入一个没有其必需参数的命令时,除了它给我带来了那个长而烦人的错误之外,什么也没有发生。 我做错了什么,或者我忘记了什么?

1 个答案:

答案 0 :(得分:0)

对于因命令引发的错误,您必须使用 on_command_error。在 API 参考中,它说:

<块引用>

discord.on_command_error(ctx,错误)

一个错误处理程序,当由于用户输入错误、检查失败或您自己的代码中的错误而在命令内引发错误时调用

此外,没有名为 onerr 的事件,您只能覆盖现有的事件。

@client.event
async def on_command_error(ctx, error):
    if isinstance(error, commands.MissingRequiredArgument):
        await ctx.send("heh")
        return

这就是您在 main.py 文件中要做的所有事情。

参考

相关问题