问题描述
我正在使用GTK + 3进行复杂的FOSS项目。生成流程图并尝试运行它时,它将产生以下错误:
'Page' object has no attribute 'get_flow_graph'
代码中列出了30个不同的文件,它们具有通用的“ ...对象没有属性...”异常,还有4个文件调用了函数get_flow_graph()
。
所以我想弄清楚的是,正在生成该特定错误消息的30个文件中的哪个正在执行,最好是具有该功能的4个文件中的哪个首先导致了错误。
我正在尝试使用Python的traceback
模块找出具体在哪里生成异常。我想我已经弄清楚了正在调用最终导致错误的函数的文件,但是我似乎无法获得traceback
模块来提供更多功能。
例如,如果我像这样包装函数:
try:
fg = self.page.get_flow_graph()
except Exception:
traceback.print_exc()
那我就得到
File "<redacted>",line 66,in _popen
fg = self.page.get_flow_graph()
AttributeError: 'Page' object has no attribute 'get_flow_graph'
'Page' object has no attribute 'get_proc'
作为输出。因此,我得到了原始异常,但遇到了一个新的get_proc
错误,该错误无济于事,但显然与尝试使用traceback
有关。
也许我没有将跟踪放置在正确的文件/位置中,或者我问得太多,但是我应该如何写它以找出原始AttributeError
的实际堆栈跟踪? / p>
解决方法
使用
except AttributeError as e:
print(e.__traceback__.tb_lineno)
print(e.__traceback__.tb_frame)
相反,可以帮助您进一步吗? (真的问,不要讽刺)