异常处理.深度跟踪

方式1:traceback捕捉堆栈详细异常python

1.traceback模块儿可打印异常发生时与函数调用堆栈相关的信息,函数可能多层嵌套,从被调用的函数依次搜索调用者并匹配异常处理程序,这个过程被称为"展转开解",解释器一方面维护放置堆栈中函数有关信息,另外一方面也维护着与已从堆栈中"展转开解"函数有关信息函数

2.traceback模块儿print_exc()方法直接打印堆栈异常无返回,format_exc()方法返回堆栈异常信息spa

import traceback


try:
    rhandler = open('unused.txt', 'r+b')
except IOError as io_err:
    rhandler = None
    traceback.print_exc()
finally:
    if rhandler: rhandler.close()

方式2:sys回溯最后异常code

1.sys.exc_info()返回值是一个tuple,(异常的类型, 异常的信息或参数, 调用堆栈的信息对象)orm

import sys


try:
    rhandler = open('unused.txt', 'r+b')
except IOError as io_err:
    rhandler = None
    exc_type, exc_value, exc_trace = sys.exc_info()
    print '''\
    type : %s
    value: %s
    trace: %s
    ''' % (exc_type, exc_value, exc_trace)
finally:
    if rhandler: rhandler.close()
相关文章
相关标签/搜索