Python traceback模块

# -*- coding: utf-8 -*-
gList = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
def f():
    gList[5]
    return g()
def g():
    return h()
def h():
    del gList[2]
    return i()
def i():
    gList.append('i')
    print(gList[7])

if __name__ == '__main__':
    try:
        f()
    except IndexError as ex:
        print("an element out of range")
        print(ex)

输出这里写图片描述
利用traceback模块
开头添加

import traceback

结尾改成

except IndexError as ex:
        print("an element out of range")
        print(ex)
        traceback.print_exc()

输出
程序运行会输出异常发生时候完整的栈信息,包括调用顺序、异常发生的语句额、错误类型等。
这里写图片描述

traceback.print_exc()方法打印出的信息包括3部分:错误类型、错误对应的值以及具体的trace信息,包括文件名、具体的行数、函数名以及对应的源代码。

Traceback模块常用的几个方法

  1. traceback.print_exception(type,value,traceback[,limit[,file]]),根据limit的设置打印栈信息,fileNone的情况下定位到sys.stderr,否侧则写入文件;其中type、value、traceback这3个参数对应的值可以从sys.exc_info()中获取。
  2. traceback.print_exc([limit[,file]]),为print_exception()函数的缩写,不需要传入type、value、traceback这3个参数。
  3. traceback.format_exc([limit])print_exc()类似,区别在于返回字符串。
  4. traceback.extract_stack([file,[,limit]]),从当前栈帧中提取trace信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值