处理 on_command_error() 事件中的 discord.py 个特定错误
Handling discord.py specific errors in on_command_error() event
我的 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
而不是像其他 python 特定错误那样的 CommandNotFound
之后,我也尝试了此操作。
@client.event
async def on_command_error(ctx, error):
if (error == (discord.ext.commands.errors.CommandNotFound)):
return
raise error
我怎样才能做到这一点?
如果您得到 NameError
,这意味着您所引用的内容在您引用它的范围内不存在(即未定义)。您需要导入 CommandNotFound
:
from discord.ext.commands import CommandNotFound
然后检查一下:
@client.event
async def on_command_error(ctx, error):
# Or, if you've already imported `commands`, you could write
# commands.CommandNotFound here instead of explicitly importing it.
if isinstance(error, CommandNotFound): # Using `==` is incorrect
return
raise error
我的 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
而不是像其他 python 特定错误那样的 CommandNotFound
之后,我也尝试了此操作。
@client.event
async def on_command_error(ctx, error):
if (error == (discord.ext.commands.errors.CommandNotFound)):
return
raise error
我怎样才能做到这一点?
如果您得到 NameError
,这意味着您所引用的内容在您引用它的范围内不存在(即未定义)。您需要导入 CommandNotFound
:
from discord.ext.commands import CommandNotFound
然后检查一下:
@client.event
async def on_command_error(ctx, error):
# Or, if you've already imported `commands`, you could write
# commands.CommandNotFound here instead of explicitly importing it.
if isinstance(error, CommandNotFound): # Using `==` is incorrect
return
raise error