Skip to main content
 首页 » 编程设计

python之如何在 python 中生成类似 java 的堆栈跟踪

2025年05月04日24fff_TT

根据我使用 Java 编程的经验,当我的代码出错时,我非常喜欢它生成的堆栈跟踪,但相比之下,我觉得 python 生成的堆栈跟踪有点欠缺。例如,Java 中的跟踪可能如下所示:

java.lang.RuntimeException 
    at test.package.Example.c(Example.java:20) 
    at test.package.Example.b(Example.java:15) 
    at test.package.Example.a(Example.java:10) 

而 python 跟踪可能看起来像这样:

Traceback (most recent call last): 
  File "example.py", line 10, in <module> 
    a() 
  File "example.py", line 2, in a 
    b() 
  File "example.py", line 5, in b 
    c() 
  File "example.py", line 8, in c 
    raise Exception 
Exception 

虽然这两种跟踪传达的信息基本相同,但我个人发现来自 java 的跟踪更容易理解。

有没有办法更改 python 用于打印其堆栈跟踪的格式,或者这种更改是否需要我在程序的根目录下创建自定义异常处理程序?

请您参考如下方法:

使用 traceback模块

import traceback 
try: 
    x= 1/0 
except Exception as e: 
    print(e) 
    traceback.print_exc()