You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取discord.py中ClientException异常内部的具体错误消息

解决方法

1 修正现有代码的类型判断错误

你当前写的isinstance(err, commands.ClientException())存在语法问题:isinstance的第二个参数需要传入异常类本身,不需要加括号实例化,否则类型判断逻辑会完全失效。

2 提取异常消息匹配目标文本

直接把异常对象转为字符串即可获取完整的错误提示内容,之后用in关键字判断是否包含目标子串即可。你也可以通过异常对象的args属性提取消息内容,效果一致。

正确的实现代码如下:

@commands.Cog.listener()
async def on_error(self, err):
    # 异常类型判断,注意不要给ClientException加括号
    if isinstance(err, commands.ClientException):
        # 提取异常消息
        err_msg = str(err)
        # 匹配目标文本
        if "Already playing audio" in err_msg:
            print("触发已在播放音频的异常")
            # 此处添加你需要的对应处理逻辑
        else:
            print(f"其他客户端异常:{err_msg}")

补充说明

  • 如果要通过args属性获取,只需把err_msg = str(err)替换为err_msg = err.args[0]即可,对于仅携带单条文本提示的异常,两种写法的返回结果完全相同。

内容的提问来源于stack exchange,提问作者Jaxon. B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 15:15:04