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 相关文章推荐
Linux下Python获取IP地址的代码
Nov 30 Python
Python模块搜索概念介绍及模块安装方法介绍
Jun 03 Python
python实现识别相似图片小结
Feb 22 Python
Python程序中设置HTTP代理
Nov 06 Python
Python使用正则表达式过滤或替换HTML标签的方法详解
Sep 25 Python
Python的numpy库中将矩阵转换为列表等函数的方法
Apr 04 Python
Django文件存储 默认存储系统解析
Aug 02 Python
Django之使用内置函数和celery发邮件的方法示例
Sep 16 Python
python能做什么 python的含义
Oct 12 Python
python matplotlib包图像配色方案分享
Mar 14 Python
python实现将两个文件夹合并至另一个文件夹(制作数据集)
Apr 03 Python
PyQt5的相对布局管理的实现
Aug 07 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
ThinkPHP框架实现session跨域问题的解决方法
2014/07/01 PHP
js 单击式的下拉菜单效果实例
2013/08/13 Javascript
javascript窗口宽高,鼠标位置,滚动高度(详细解析)
2013/11/18 Javascript
从JQuery源码分析JavaScript函数的apply方法与call方法
2014/09/25 Javascript
PHP PDO操作总结
2014/11/17 Javascript
js兼容火狐显示上传图片预览效果的方法
2015/05/21 Javascript
AngularJS的一些基本样式初窥
2015/07/27 Javascript
Javascript技术难点之apply,call与this之间的衔接
2015/12/04 Javascript
jQuery鼠标事件总结
2016/10/13 Javascript
React BootStrap用户体验框架快速上手
2018/03/06 Javascript
vue.js 实现评价五角星组件的实例代码
2018/08/13 Javascript
微信小程序常用赋值方法小结
2019/04/30 Javascript
Python struct.unpack
2008/09/06 Python
浅要分析Python程序与C程序的结合使用
2015/04/07 Python
python通过post提交数据的方法
2015/05/06 Python
Python中的sort()方法使用基础教程
2017/01/08 Python
Python实现爬虫从网络上下载文档的实例代码
2018/06/13 Python
python实现比较文件内容异同
2018/06/22 Python
python创建文件时去掉非法字符的方法
2018/10/31 Python
Python绘制频率分布直方图的示例
2019/07/08 Python
浅谈Pycharm最有必要改的几个默认设置项
2020/02/14 Python
解决pycharm不能自动保存在远程linux中的问题
2021/02/06 Python
纯css3实现鼠标经过图片显示描述的动画效果
2014/09/01 HTML / CSS
英国的领先快速时尚零售商:In The Style
2019/03/25 全球购物
马歇尔耳机官网:Marshall Headphones
2020/02/04 全球购物
New delete 与malloc free 的联系与区别
2013/02/04 面试题
大学毕业自我评价
2014/02/02 职场文书
法律进社区实施方案
2014/03/21 职场文书
《海伦?凯勒》教学反思
2014/04/17 职场文书
篮球比赛策划方案
2014/06/05 职场文书
法定代表人资格证明书
2015/06/18 职场文书
php引用传递
2021/04/01 PHP
Python打包exe时各种异常处理方案总结
2021/05/18 Python
MySQL索引是啥?不懂就问
2021/07/21 MySQL
Pygame Time时间控制的具体使用详解
2021/11/17 Python
Python几种酷炫的进度条的方式
2022/04/11 Python