首页 > 解决方案 > Python函数导入后不起作用

问题描述

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

文件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()

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

标签: pythonpython-3.xfunctiondiscorddiscord.py

解决方案


您必须使用on_command_error由于命令而引发的错误。在 API References 中,它说:

不和谐。on_command_error (ctx, error)

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

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

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

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

参考


推荐阅读