您当前的位置: 首页 >  Python

IT之一小佬

暂无认证

  • 3浏览

    0关注

    1192博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

python中traceback.format_tb()用法详解

IT之一小佬 发布时间:2022-08-21 15:55:42 ,浏览量:3

源码介绍:

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 模块中文版 - 开发文档 - 文江博客

关注
打赏
1665675218
查看更多评论
立即登录/注册

微信扫码登录

0.0508s