【发布时间】:2021-04-25 15:33:59
【问题描述】:
我的 discord bot 使用与服务器中的另一个 bot 相同的命令前缀,这会导致控制台在每次有人使用另一个 bot 时发送CommandNotFound 错误。我看到另一个问题,有人回答说您可以像这样处理错误:
@client.event
async def on_command_error(ctx, error):
#print(error) -- returns error description
if (error == CommandNotFound):
return
raise error
但是这个解决方案只是抛出一个 NameError 说 CommandNotFound 没有找到。在看到控制台输出显示 discord.ext.commands.errors.CommandNotFound 而不是 CommandNotFound 像其他 python 特定错误之后,我也尝试了这个。
@client.event
async def on_command_error(ctx, error):
if (error == (discord.ext.commands.errors.CommandNotFound)):
return
raise error
我怎样才能做到这一点?
【问题讨论】:
-
错误参数是对象还是类?您是否尝试过使用
isinstance代替?由于 raise 有效,它应该已经是一个对象,因此,您必须首先比较类型,最好使用isinstance。 -
另外,根据文档,异常位于
discord.ext.commands.CommandNotFound下。您是否使用from discord.ext.commands import CommandNotFound导入了它?
标签: python python-3.x discord discord.py discord.py-rewrite