Python 输出详细的异常信息(traceback)方式


Posted in Python onApril 08, 2020

问题描述

为了程序的正常运行,进行异常处理是有必要的,甚至于有时候,我们会主动的抛出异常,然后让程序进行异常捕获,再进行进一步的处理。但是,在开发的程序相对较大的过程中,我们不能一昧的进行try....except。而是要弄清楚到底抛出的是什么异常,同时,对于某些未知的异常,我们应该清楚的定位到到底是哪一行程序抛出的异常,针对这种情况,traceback库能极大的帮助我们。

解决方法

代码只需一行,即 print(traceback.format_exc()) 即可,这样即可打印详细的信息,这个详细信息比你捕捉完异常打印args详细多了,详细到具体第几行,如果你在一个大型程序里,需要定位错误,那么,traceback是十分好用的:

Python 输出详细的异常信息(traceback)方式

可以清楚的看到 ‘=' 号上方和下方打印的异常详细程度是不同的。

我们还可以通过traceback,获得异常的名称,用于根据异常名称进行异常捕获,例如,我们直接运行一段程序,并没有打印出来异常的名字,这样我们无法通过异常名对异常进行捕获,因此,我们可以通过traceback获得异常名:

Python 输出详细的异常信息(traceback)方式

如上图,我们无法获得异常名,下图展示traceback获得异常名:

Python 输出详细的异常信息(traceback)方式

从上图我们可以看到,我们无法通过args获取异常名,但是可以通过traceback获取

补充知识:python 输出完成异常信息

如下所示:

import traceback
 
try:
  1/0
exception:
  traceback.print_exc()

traceback.print_exc() 直接打印异常

traceback.format_exc()返回字符串

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

还可以将信息写入到文件

traceback.print_exc(file=open(‘error.txt','a+'))

以上这篇Python 输出详细的异常信息(traceback)方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 字符串split的用法分享
Mar 23 Python
python模拟登录百度代码分享(获取百度贴吧等级)
Dec 27 Python
Python删除空文件和空文件夹的方法
Jul 14 Python
Python工程师面试题 与Python Web相关
Jan 14 Python
浅谈Python中的可变对象和不可变对象
Jul 07 Python
python中类和实例如何绑定属性与方法示例详解
Aug 18 Python
python爬虫的数据库连接问题【推荐】
Jun 25 Python
Python 普通最小二乘法(OLS)进行多项式拟合的方法
Dec 29 Python
用Python逐行分析文件方法
Jan 28 Python
使用Python串口实时显示数据并绘图的例子
Dec 26 Python
解决pytorch 交叉熵损失输出为负数的问题
Jul 07 Python
python中lower函数实现方法及用法讲解
Dec 23 Python
python上传时包含boundary时的解决方法
Apr 08 #Python
python MultipartEncoder传输zip文件实例
Apr 07 #Python
xadmin使用formfield_for_dbfield函数过滤下拉表单实例
Apr 07 #Python
Xadmin+rules实现多选行权限方式(级联效果)
Apr 07 #Python
Django Xadmin多对多字段过滤实例
Apr 07 #Python
解决Django部署设置Debug=False时xadmin后台管理系统样式丢失
Apr 07 #Python
解决Python中报错TypeError: must be str, not bytes问题
Apr 07 #Python
You might like
PHP+MySQL 手工注入语句大全 推荐
2009/10/30 PHP
php实现在线生成条形码示例分享(条形码生成器)
2013/12/30 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
FireFox中textNode分片的问题
2007/04/10 Javascript
js中widow.open()方法使用详解
2013/07/30 Javascript
浅析JavaScript中的隐式类型转换
2013/12/05 Javascript
javascript入门教程基础篇
2015/11/16 Javascript
使用JQuery FancyBox插件实现图片展示特效
2015/11/16 Javascript
jqueryMobile 动态添加元素,展示刷新视图的实现方法
2016/05/28 Javascript
轻松掌握JavaScript策略模式
2016/08/25 Javascript
JS正则截取两个字符串之间及字符串前后内容的方法
2017/01/06 Javascript
React组件之间的通信的实例代码
2017/06/27 Javascript
浅谈Angular2 ng-content 指令在组件中嵌入内容
2017/08/18 Javascript
angularjs实现猜大小功能
2017/10/23 Javascript
echarts整合多个类似option的方法实例
2018/07/10 Javascript
JS实现字符串翻转的方法分析
2018/08/31 Javascript
详解node登录接口之密码错误限制次数(含代码)
2019/10/25 Javascript
JavaScript经典案例之简易计算器
2020/08/24 Javascript
解决Python内层for循环如何break出外层的循环的问题
2019/06/24 Python
python GUI图形化编程wxpython的使用
2019/07/19 Python
CSS3弹性盒模型开发笔记(二)
2016/04/26 HTML / CSS
Bally美国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/18 全球购物
加拿大品牌鞋包连锁店:Little Burgundy
2021/02/28 全球购物
FragranceNet中文网:北美健康美容线上零售商
2020/08/26 全球购物
工程部主管岗位职责
2013/11/17 职场文书
行政前台岗位职责
2013/12/04 职场文书
平面设计岗位职责
2013/12/14 职场文书
五水共治一句话承诺
2014/05/30 职场文书
法院授权委托书格式
2014/09/28 职场文书
党员个人批评与自我批评
2014/10/14 职场文书
2014年幼儿园工作总结
2014/11/10 职场文书
摘录式读书笔记
2015/07/01 职场文书
《清澈的湖水》教学反思
2016/02/17 职场文书
创业计划书之干洗店
2019/09/10 职场文书
CSS预处理框架——Stylus
2021/04/21 HTML / CSS
修改并编译golang源码的操作步骤
2021/07/25 Golang