Python 3.x 从异常获取函数调用堆栈
当python函数失败时,我们会得到一个回溯,列出文件名、行和函数调用 除了块之外,在Python 3.x 从异常获取函数调用堆栈,python-3.x,Python 3.x,当python函数失败时,我们会得到一个回溯,列出文件名、行和函数调用 除了块之外,在块中是否只提取这些函数名?我只想要一份导致失败的连续呼叫列表 我查看了traceback库,并对我的异常运行了dir(),但我什么也没看到。我最后查看了traceback文档并找到了答案 首先,使用traceback.extract_tb()获取StackSummary。这是FrameSummary对象的列表,这些对象本身就是元组,其第三个值是函数名。全文: try: some_function() exc
块中是否只提取这些函数名?我只想要一份导致失败的连续呼叫列表
我查看了traceback
库,并对我的异常运行了dir()
,但我什么也没看到。我最后查看了traceback
文档并找到了答案
首先,使用traceback.extract_tb()
获取StackSummary
。这是FrameSummary
对象的列表,这些对象本身就是元组,其第三个值是函数名。全文:
try:
some_function()
except Exception as e:
tb = traceback.extract_tb(e.__traceback__)
for frame in tb:
print(frame[2])
输出将类似于
<module>
some_function
another_func_called_by_some_function
...
某些函数
另一个函数通过某个函数调用
...