python回溯捕获并打印异常的方法

  

异常处理是日常操作了,但是有时候不能只能打印我们处理的结果,还需要将我们的异常打印出来,这样更直观的显示错误

  

下面来介绍回溯模块来进行处理

        试一试:   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回溯捕获并打印异常的方法