python中traceback.format_tb()用法详解

源码介绍:

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("执行结束!")

运行结果:

参考博文:

traceback — 异常和栈的回溯 - 每周一个 Python 3 模块中文版 - 开发文档 - 文江博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值