方式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()