python如何利用traceback获取详细的异常信息


Posted in Python onJune 05, 2021

除了使用 sys.exc_info() 方法获取更多的异常信息之外,还可以使用 traceback 模块,该模块可以用来查看异常的传播轨迹,追踪异常触发的源头。

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

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

下面使用traceback模块

traceback是python中用来跟踪异常信息的模块,方便把程序中的运行异常打印或者保存下来做异常分析。

官方参考文档如下

https://docs.python.org/2/library/traceback.html

常见用法

try:
  doSomething()
except:
  traceback.print_exc()
  # logging.error(str(traceback.format_exc()))

import 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文件去。

总结

到此这篇关于python如何利用traceback获取详细异常信息的文章就介绍到这了,更多相关python traceback获取异常内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python下Fabric的简单部署方法
Jul 14 Python
Python实现利用最大公约数求三个正整数的最小公倍数示例
Sep 30 Python
Python numpy 常用函数总结
Dec 07 Python
Python反射的用法实例分析
Feb 11 Python
python 循环读取txt文档 并转换成csv的方法
Oct 26 Python
浅谈Python 递归算法指归
Aug 22 Python
记一次pyinstaller打包pygame项目为exe的过程(带图片)
Mar 02 Python
python+selenium+chrome批量文件下载并自动创建文件夹实例
Apr 27 Python
python中os包的用法
Jun 01 Python
一文轻松掌握python语言命名规范规则
Jun 18 Python
Python-OpenCV教程之图像的位运算详解
Jun 21 Python
Python加密技术之RSA加密解密的实现
Apr 08 Python
Python异常类型以及处理方法汇总
Jun 05 #Python
Python OpenCV 彩色与灰度图像的转换实现
Python深度学习之实现卷积神经网络
python opencv通过4坐标剪裁图片
Jun 05 #Python
Python还能这么玩之只用30行代码从excel提取个人值班表
Jun 05 #Python
拒绝盗图!教你怎么用python给图片加水印
python四个坐标点对图片区域最小外接矩形进行裁剪
You might like
php与paypal整合方法
2010/11/28 PHP
php多层数组与对象的转换实例代码
2013/08/05 PHP
PHP的error_reporting错误级别变量对照表
2014/07/08 PHP
php实现上传图片文件代码
2015/07/19 PHP
详解php中serialize()和unserialize()函数
2017/07/08 PHP
PHP 实现公历日期与农历日期的互转换
2017/09/13 PHP
Laravel 简单实现Ajax滚动加载示例
2019/10/22 PHP
JavaScript setTimeout和setInterval的使用方法 说明
2010/03/25 Javascript
JavaScript可否多线程? 深入理解JavaScript定时机制
2012/05/23 Javascript
css+js实现部分区域高亮可编辑遮罩层
2014/03/04 Javascript
js获取UserControl内容为拼html时提供方便
2014/11/02 Javascript
Backbone.js中的集合详解
2015/01/14 Javascript
javascript实现下班倒计时效果的方法(可桌面通知)
2015/07/10 Javascript
Bootstrap项目实战之首页内容介绍(全)
2016/04/25 Javascript
jQuery EasyUI tree 使用拖拽时遇到的错误小结
2016/10/10 Javascript
Vue 过渡(动画)transition组件案例详解
2017/01/22 Javascript
JavaScript模拟文件拖选框样式v1.0的实例
2017/08/04 Javascript
基于angular6.0实现的一个组件懒加载功能示例
2018/04/12 Javascript
mpvue中使用flyjs全局拦截的实现代码
2018/09/13 Javascript
nodejs分离html文件里面的js和css的方法
2019/04/09 NodeJs
javascript设计模式 ? 策略模式原理与用法实例分析
2020/04/21 Javascript
python入门基础之用户输入与模块初认识
2016/11/14 Python
python实现多线程网页下载器
2018/04/15 Python
Django CSRF跨站请求伪造防护过程解析
2019/07/31 Python
pandas DataFrame创建方法的方式
2019/08/02 Python
深入了解NumPy 高级索引
2020/07/24 Python
PIP和conda 更换国内安装源的方法步骤
2020/09/21 Python
Html5 滚动穿透的方法
2019/05/13 HTML / CSS
英国和世界各地预订便宜的酒店:LateRooms.com
2019/05/05 全球购物
String这个类型的class为何定义成final?
2012/11/13 面试题
什么是数组名
2012/05/10 面试题
党风廉政承诺书
2014/03/27 职场文书
《数星星的孩子》教学反思
2014/04/11 职场文书
《青山处处埋忠骨》教学反思
2014/04/22 职场文书
2015年高校图书馆工作总结
2015/04/30 职场文书
千万级用户系统SQL调优实战分享
2022/03/03 MySQL