异常处理是日常操作了,但是有时候不能只能打印我们处理的结果,还需要将我们的异常打印出来,这样更直观的显示错误
try:
1/0
except Exception,e:
print e
如果这样输出结果是integer division or modulo by zero,只知道是报了这个错,但是却不知道在哪个文件哪个函数哪一行报的错
下面来介绍traceback模块来进行处理
try:
1/0
except Exception,e:
traceback.print_exec()
输出为:
Traceback (most recent call last):
File “test_traceback.py”, line 3, in
1/0
ZeroDivisionError: integer division or modulo by zero
traceback.print_exc(),traceback.format_exc(),traceback.print_exception()三者的区别
1、print_exc() # 是对异常栈输出
2、format_exc() # 是把异常栈以字符串的形式返回,print(traceback.format_exc()) 就相当于traceback.print_exc()
3、print_exception() # traceback.print_exc()实现方式就是traceback.print_exception(sys.exc_info()),可以点sys.exc_info()进去看看实现