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

Python如何将捕获的Exception拆分为异常类型与错误消息

实现方案

直接通过Python异常实例的内置属性即可完成拆分,split_err函数完整实现如下:

def split_err(err):
    # 取异常类型名称,若需要异常类对象可直接返回 err.__class__
    err_type = err.__class__.__name__
    # 转字符串取异常消息,兼容所有内置/自定义异常的可读输出
    err_msg = str(err)
    return err_type, err_msg

注意事项

  • 如果你的log_crash需要接收异常类对象而非类型名称字符串,把err_type赋值改为err_type = err.__class__即可。
  • 不推荐直接取err.args[0]作为错误消息:部分异常会携带多个参数,无参异常的args是空元组,直接取下标会触发新的报错,用str(err)做转换兼容性最好。

调用示例

基础功能测试

err = Exception("this is an exception")
err_type, message = split_err(err)
print(err_type)  # 输出:Exception
print(message)   # 输出:this is an exception

适配检查模式的try/except块写法

try:
    # 业务逻辑代码
    1 / 0
except Exception as Err:
    err_type, err_msg = split_err(Err)
    # 传入已封装的日志函数,不抛出异常
    log_crash(err_type, err_msg)

内容的提问来源于stack exchange,提问作者Pioneer_11

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 16:18:20