python traceback捕获并打印异常的方法


Posted in Python onAugust 31, 2018

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

下面来介绍traceback模块来进行处理

try:
    1/0
  except Exception, e:
    print e

输出结果是integer division or modulo by zero,只知道是报了这个错,但是却不知道在哪个文件哪个函数哪一行报的错。

使用traceback

try:
    1/0
  except Exception, e:
    traceback.print_exc()

输出结果

Traceback (most recent call last):

        File "test_traceback.py", line 3, in <module>

           1/0

ZeroDivisionError: integer division or modulo by zero

这样非常直观有利于调试。

 traceback.print_exc()跟traceback.format_exc()有什么区别呢?

format_exc()返回字符串,print_exc()则直接给打印出来。

即traceback.print_exc()与print traceback.format_exc()效果是一样的。

print_exc()还可以接受file参数直接写入到一个文件。比如

traceback.print_exc(file=open('tb.txt','w+'))

写入到tb.txt文件去。

示例

# -*- coding:utf-8 -*-

import os
import logging
import traceback

#设置log, 这里使用默认log
logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
    datefmt='[%Y-%m_%d %H:%M:%S]',
    filename=os.path.dirname(os.path.realpath(__file__)) + "/" + 'test.log',
    filemode='a')

a=10
b=0 #设置为0, 走异常流程; 否则, 走正常流程

try:
  res=a/b
  logging.info("exec success, res:" + str(res))
except Exception,e:
  #format_exc()返回字符串,print_exc()则直接给打印出来
  traceback.print_exc()
  logging.warning("exec failed, failed msg:" + traceback.format_exc())

logging默认打印级别是warning.

日志打印:

[2017-11_17 07:51:02] trace.py[line:24] WARNING exec failed, failed msg:Traceback (most recent call last):

  File "trace.py", line 19, in <module>

    res=a/b

ZeroDivisionError: integer division or modulo by zero

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
gearman的安装启动及python API使用实例
Jul 08 Python
Python实现图片转字符画的示例
Aug 22 Python
python scipy求解非线性方程的方法(fsolve/root)
Nov 12 Python
解决pycharm回车之后不能换行或不能缩进的问题
Jan 16 Python
python微信撤回监测代码
Apr 29 Python
Python跳出多重循环的方法示例
Jul 03 Python
基于Tensorflow批量数据的输入实现方式
Feb 05 Python
Pyspark获取并处理RDD数据代码实例
Mar 27 Python
解决flask接口返回的内容中文乱码的问题
Apr 03 Python
python图片合成的示例
Nov 09 Python
python中pyqtgraph知识点总结
Jan 26 Python
python实现对doc、txt、xls等文档的读写操作
Apr 02 Python
基于python中theano库的线性回归
Aug 31 #Python
基于随机梯度下降的矩阵分解推荐算法(python)
Aug 31 #Python
python实现梯度下降算法
Mar 24 #Python
wtfPython—Python中一组有趣微妙的代码【收藏】
Aug 31 #Python
opencv python 图像去噪的实现方法
Aug 31 #Python
python+numpy+matplotalib实现梯度下降法
Aug 31 #Python
python实现随机梯度下降法
Mar 24 #Python
You might like
几个有用的php字符串过滤,转换函数代码
2012/05/01 PHP
PHP中ajax无刷新上传图片与图片下载功能
2017/02/21 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
2017/08/28 PHP
Centos7 Yum安装PHP7.2流程教程详解
2019/07/02 PHP
推荐自用 Javascript 缩图函数 (onDOMLoaded)……
2007/10/23 Javascript
jQuery 前的按键判断代码
2010/03/19 Javascript
js实现广告漂浮效果的小例子
2013/07/02 Javascript
如何让DIV可编辑、可拖动示例代码
2013/09/18 Javascript
jQuery插件编写步骤详解
2016/06/03 Javascript
微信开发 js实现tabs选项卡效果
2016/10/28 Javascript
浅谈在Vue-cli里基于axios封装复用请求
2017/11/06 Javascript
详解如何在react中搭建d3力导向图
2018/01/12 Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
2018/08/25 Javascript
生成无限制的微信小程序码的示例代码
2019/09/20 Javascript
vue修改Element的el-table样式的4种方法
2020/09/17 Javascript
vue在图片上传的时候压缩图片
2020/11/18 Vue.js
Vue在H5 项目中使用融云进行实时个人单聊通讯
2020/12/14 Vue.js
[05:08]DOTA2-DPC中国联赛3月6日Recap集锦
2021/03/11 DOTA
Python黑魔法@property装饰器的使用技巧解析
2016/06/16 Python
python爬取w3shcool的JQuery课程并且保存到本地
2017/04/06 Python
浅谈Python由__dict__和dir()引发的一些思考
2017/10/30 Python
python中找出numpy array数组的最值及其索引方法
2018/04/17 Python
Django自定义用户登录认证示例代码
2019/06/30 Python
Python IDE Pycharm中的快捷键列表用法
2019/08/08 Python
解决PyCharm IDE环境下,执行unittest不生成测试报告的问题
2020/09/03 Python
英国鹦鹉店:Parrot Essentials
2018/12/03 全球购物
上海方立数码笔试题
2013/10/18 面试题
介绍一下木马病毒的种类
2015/07/26 面试题
毕业生就业协议书
2014/04/11 职场文书
投标人廉洁自律承诺书
2014/05/26 职场文书
2014年政协工作总结
2014/12/09 职场文书
法学专业求职信范文
2015/03/19 职场文书
2016年学校综治宣传月活动总结
2016/03/16 职场文书
新手,如何业余时间安排好写作、提高写作能力?
2019/10/21 职场文书
微软Win11什么功能最惊艳? Windows11新功能特性汇总
2021/11/21 数码科技
golang生成vcf通讯录格式文件详情
2022/03/25 Golang