我正在写一个不和谐的机器人,但我遇到了这个问题:为了处理命令的延迟,discord.ext.commands.CommandOnCooldown我需要一个方法on_command_error,但它不适用于特定的错误,但会同时出现,因此,当另一个(真正的)错误来了,它也以异常on_command_error的形式进入,我不知道是什么原因造成的,因为我只得到文本。有没有办法以某种方式从异常对象中获取有关导致它的行的信息。到目前为止,我的代码如下所示:
@commands.Cog.listener()
async def on_command_error(self, ctx, error: Exception):
if isinstance(error, commands.CommandOnCooldown):
await self.error_message(ctx, f'This command is on cooldown, you can use it in {round(error.retry_after, 2)}')
else:
print(error)
而是
print(error)使用raise error这将打印错误的全文以及导致错误的调用列表。
你可以在这里阅读更多
一般来说,如果你事先知道需要排除哪些错误,最好在命令的开头立即写这个,如果发生错误,输出信息到控制台并调用
return提前终止函数。回溯模块,但我怀疑您是否收到错误实例