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文本生成二维码实例
Jan 06 Python
详解Python的Django框架中manage命令的使用与扩展
Apr 11 Python
python2.7 mayavi 安装图文教程(推荐)
Jun 22 Python
解决phantomjs截图失败,phantom.exit位置的问题
May 17 Python
Django实战之用户认证(初始配置)
Jul 16 Python
Python3删除排序数组中重复项的方法分析
Jan 31 Python
详解Numpy中的数组拼接、合并操作(concatenate, append, stack, hstack, vstack, r_, c_等)
May 27 Python
PyCharm+Qt Designer+PyUIC安装配置教程详解
Jun 13 Python
python实现五子棋人机对战游戏
Mar 25 Python
python web框架中实现原生分页
Sep 08 Python
pycharm设置python文件模板信息过程图解
Mar 10 Python
详解Python Celery和RabbitMQ实战教程
Jan 20 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
40年前的这部特摄片恐龙特级克塞号80后的共同回忆
2020/03/08 日漫
php开启与关闭错误提示适用于没有修改php.ini的权限
2014/10/16 PHP
php+mysqli实现批量执行插入、更新及删除数据的方法
2015/01/29 PHP
php限制文件下载速度的代码
2015/10/20 PHP
yii2中使用Active Record模式的方法
2016/01/09 PHP
jquery 常用操作整理 基础入门篇
2009/10/14 Javascript
Jquery在IE7下无法使用 $.ajax解决方法
2009/11/11 Javascript
jquery通过a标签删除table中的一行的代码
2013/12/02 Javascript
jQuery中的height innerHeight outerHeight区别示例介绍
2014/06/15 Javascript
基于javascript实现九宫格大转盘效果
2020/05/28 Javascript
jsp 自动编译机制详细介绍
2016/12/01 Javascript
微信开发 JS-SDK 6.0.2 经常遇到问题总结
2016/12/08 Javascript
微信小程序技巧之show内容展示,上传文件编码问题
2017/01/23 Javascript
JS表单提交验证、input(type=number) 去三角 刷新验证码
2017/06/21 Javascript
AngularJs 延时器、计时器实例代码
2017/09/16 Javascript
node使用Koa2搭建web项目的方法
2017/10/17 Javascript
Three.js基础学习教程
2017/11/16 Javascript
Node.js利用console输出日志文件的方法示例
2018/04/27 Javascript
js canvas实现写字动画效果
2018/11/30 Javascript
js数组的基本使用总结
2021/01/18 Javascript
JS设计模式之责任链模式实例详解
2018/02/03 Python
pandas 对日期类型数据的处理方法详解
2019/08/08 Python
利用ImageAI库只需几行python代码实现目标检测
2019/08/09 Python
python脚本调用iftop 统计业务应用流量的思路详解
2019/10/11 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
2019/11/29 Python
PyTorch实现AlexNet示例
2020/01/14 Python
使用celery和Django处理异步任务的流程分析
2020/02/19 Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
2021/03/02 Python
HTML5之SVG 2D入门6—视窗坐标系与用户坐标系及变换概述
2013/01/30 HTML / CSS
HTML5中input[type='date']自定义样式与日历校验功能的实现代码
2017/07/11 HTML / CSS
护士自荐信怎么写
2013/10/18 职场文书
个人委托书格式
2014/04/04 职场文书
任命书范本大全
2014/06/06 职场文书
表扬稿格式范文
2015/01/16 职场文书
Mac环境Nginx配置和访问本地静态资源的实现
2021/03/31 Servers
golang 在windows中设置环境变量的操作
2021/04/29 Golang