异常处理是日常操作了,但是有时候不能只能打印我们处理的结果,还需要将我们的异常打印出来,这样更直观的显示错误
下面来介绍回溯模块来进行处理
试一试: 1/0 除了例外,e: 打印e >之前输出结果是整数除法或模零,只知道是报了这个错,但是却不知道在哪个文件哪个函数哪一行报的错。
使用回溯
试一试: 1/0 除了例外,e: traceback.print_exc ()输出结果
回溯(最近的电话最后):
,,,,,,,test_traceback文件”。py”, 3号线,在& lt; module>
,,,,,,,,,,1/0
ZeroDivisionError:整数除法或模零
引用>这样非常直观有利于调试。
, traceback.print_exc()跟traceback.format_exc()有什么区别呢?
format_exc()返回字符串,print_exc()则直接给打印出来。
即traceback.print_exc印刷traceback.format_exc()与()效果是一样的。
print_exc()还可以接受文件参数直接写入到一个文件。比如
traceback.print_exc(文件=打开(' tb.txt ', ' w + '))
写入到结核病。txt文件去。
<强>示例强>
# - * -编码:utf - 8 - * 进口操作系统 导入日志 进口回溯 #设置日志,这里使用默认日志 logging.basicConfig (=logging.INFO水平, 格式=' % (asctime) %(文件名)年代[:% (lineno) d] % (levelname) %(消息)年代', datefmt=' [Y % - % m_ % d % H: % M: % S)”, 文件名=os.path.dirname (os.path.realpath (__file__)) +“/?“test.log”, filemode=' a ') 一个=10 b=0 #设置为0,走异常流程;否,则走正常流程 试一试: res=a/b logging.info(“执行成功,res:“+ str (res)) 除了例外,e: # format_exc()返回字符串,print_exc()则直接给打印出来 traceback.print_exc () 日志记录。警告(“执行失败了,失败的味精:”+ traceback.format_exc ()) >之前日志默认打印级别是警告。
日志打印:
[2017 - 11 - _17 07:51:02]跟踪。py(线:24)警告执行失败了,失败的味精:回溯(最近的电话最后):
,文件”痕迹。py”, 19日行& lt; module>
,,,res=a/b
ZeroDivisionError:整数除法或模零
引用>以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
python回溯捕获并打印异常的方法