Python 我们可以从异常中获取堆栈跟踪吗?
要获取stacktrace,我使用:Python 我们可以从异常中获取堆栈跟踪吗?,python,Python,要获取stacktrace,我使用: except: import traceback print(traceback.format_exec()) 我可以不使用回溯从异常中获取stacktrace吗?例如: except Exception as e: print(e) print(e.traceback) #is there command like this? 您需要回溯。您可以将其与e一起使用。您应该在代码开始时导入它,而不需要每次发生异常时都导入它
except:
import traceback
print(traceback.format_exec())
我可以不使用回溯从异常中获取stacktrace吗?例如:
except Exception as e:
print(e)
print(e.traceback) #is there command like this?
您需要
回溯
。您可以将其与e
一起使用。您应该在代码开始时导入它,而不需要每次发生异常时都导入它
import traceback
try:
...
except Exception as e:
tb = traceback.format_exc()
print(e)
print(tb)
您需要
回溯
。您可以将其与e
一起使用。您应该在代码开始时导入它,而不需要每次发生异常时都导入它
import traceback
try:
...
except Exception as e:
tb = traceback.format_exc()
print(e)
print(tb)
使用回溯模块-可在此处找到更多信息: 或者先将其保存为变量,如下所示:
except Exception as e:
print(e)
st = traceback.format_stack()
print(st)
使用回溯模块-可在此处找到更多信息: 或者先将其保存为变量,如下所示:
except Exception as e:
print(e)
st = traceback.format_stack()
print(st)
如果不使用回溯模块,我们应该能够使用sys.exc_info获得更多详细信息。这将返回包含回溯信息的元组:
try:
...
except Exception as e:
tb = sys.exec_info()[2]
...
回溯对象包含有关发生错误的堆栈帧和行号的信息
这就是追溯在引擎盖下的用途。如果不使用追溯模块,我们应该能够使用sys.exc_info获得更多详细信息。这将返回包含回溯信息的元组:
try:
...
except Exception as e:
tb = sys.exec_info()[2]
...
回溯对象包含有关发生错误的堆栈帧和行号的信息
这就是回溯在引擎盖下的用途。为什么异常对象没有堆栈跟踪?@它有:
e.\uuuu traceback\uuuu
。但是作为所有\uuuu dunder\uuuu
名称的规则,这些名称保留供内部使用,您的代码不应该依赖它们(可以在不反对的情况下更改/删除它们)。traceback
模块是一种方法。为什么异常对象没有堆栈跟踪?@它有一个变量:e.\uu traceback\uu
。但是作为所有\uuuu dunder\uuuu
名称的规则,这些名称保留供内部使用,您的代码不应该依赖它们(可以在不反对的情况下更改/删除它们)。traceback
模块就是一条出路。