【发布时间】:2021-02-21 22:33:44
【问题描述】:
我正在尝试创建一个重新引发任意异常的 try-except 块,但仅包含回溯堆栈中的最后一个块。
类似这样的:
import traceback
def my_func(shorten_tracebacks=True):
try:
# Do stuff here
except Exception as e:
if shorten_tracebacks:
raise TheSameTypeOfError, e, traceback.print_exc(limit=1)
else:
raise(e)
有没有首选的方法来做到这一点?
如果重要的话,我这样做是为了方便调试 jupyter 笔记本中经常使用的某些 API——它们往往会生成非常长的堆栈跟踪,其中只有最后一个块是有用的。这迫使用户滚动很多。如果不想缩短回溯,可以随时设置shorten_tracebacks=False
【问题讨论】:
-
阿门。并在我对自己的代码感兴趣的任何异常随附的 unittest/pytest/django crud 的上一层进行核对。 FWIW,我注意到 pdbpp 调试器似乎通过其
hf_hide/unhide功能剥离了很多帧。
标签: python try-except