源码介绍:
def format_tb(tb, limit=None):
"""A shorthand for 'format_list(extract_tb(tb, limit))'."""
return extract_tb(tb, limit=limit).format()
示例代码:
"""
traceback.format_tb(tb,limit=None) 返回堆栈跟踪条目的列表
tb:要跟踪的traceback对象
limit: 这个是限制stack trace层级的,如果不设或者为None,就会打印所有层级的stack trace
"""
import time
import sys
from traceback import format_tb
def div():
return 1 / 0
def second_level():
div()
def third_level():
second_level()
if __name__ == '__main__':
try:
third_level()
except Exception as e:
print('Error:', e)
ttype, tvalue, ttraceback = sys.exc_info()
for i in format_tb(ttraceback):
print(i, end='')
time.sleep(1)
print("再次执行一次!")
try:
third_level()
except Exception as e:
print('Error:', e)
ttype, tvalue, ttraceback = sys.exc_info()
for i in format_tb(ttraceback, 2): # 此时添加了limit限制条件
print(i, end='')
time.sleep(1)
print("执行结束!")
运行结果:
参考博文: