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

如何用Python的Try Except捕获通用内置异常且保留错误信息?

如何在Python中捕获通用异常并保留错误信息

Python里所有内置的业务相关异常(比如TypeError、ZeroDivisionError这类)都继承自Exception类,所以用Exception作为捕获类型就能实现你要的通用捕获效果,同时通过绑定异常实例可以保留完整的错误信息。

直接上符合你需求的代码示例:

try:
    # 替换成你的业务代码
    num = int("not_a_number")
    result = 10 / num
except Exception as e:
    # 这里实现给用户发送错误的逻辑,同时保留错误详情
    error_info = f"错误类型:{type(e).__name__},错误描述:{str(e)}"
    print(error_info)  # 实际场景可以换成返回给用户的消息、写入日志等操作

关键说明:

  • except Exception as e:这里的e是捕获到的异常对象,通过它能拿到错误的所有细节
  • type(e).__name__:获取具体的异常类型名称(比如TypeError、ZeroDivisionError)
  • str(e):获取异常自带的描述信息(比如invalid literal for int() with base 10: 'not_a_number')

注意事项:

这种方式不会捕获系统级的退出异常(比如KeyboardInterrupt、SystemExit),这些属于BaseException的子类,一般不需要捕获,除非你有特殊的处理需求。另外,尽量不要在代码中大范围滥用通用捕获,能捕获具体异常的时候优先写具体类型,通用捕获适合在顶层做统一错误处理的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 17:12:47