traceback.print_exc() #把返回信息输出到控制台
fp = StringIO.StringIO() #创建内存文件对象
traceback.print_exc(file=fp) #把返回信息写到文件中去
message = fp.getvalue() #获得信息
其实traceback.print_exc()函数只是traceback.print_exception()函数的一个简写形式,而它们获取异常相关的数据都是通过sys.exc_info()函数得到的。
traceback模块使用traceback对象
print_exception(etype, value, tb[, limit[, file]])
print_exc([limit[, file]])是print_exception的简写print_exception(sys.exc_type, sys.exc_value, sys.exc_traceback, limit, file)(它使用sys.exc_info())
format_exc([limit])(很像print_exc(limit))直接返回字符串,不输出到流,不必要使用上文的StringIO得到字符串,在2.4中新加的
limit参数,限制返回的错误层数,即在函数A调用函数B,一个异常发生在函数B里面,如果limit=1,则只返回显示函数A里面发生错误,而如果设置limit,则全部返回。
file参数,指定输出到文件里。