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 匹配任意字符(包括换行符)的正则表达式写法
Oct 29 Python
Python判断直线和矩形是否相交的方法
Jul 14 Python
Python PyQt5标准对话框用法示例
Aug 23 Python
django连接mysql配置方法总结(推荐)
Aug 18 Python
一看就懂得Python的math模块
Oct 21 Python
Python判断以什么结尾以什么开头的实例
Oct 27 Python
Python实例方法、类方法、静态方法的区别与作用详解
Mar 25 Python
利用Python+阿里云实现DDNS动态域名解析的方法
Apr 01 Python
Python字符串匹配之6种方法的使用详解
Apr 08 Python
爬虫代理池Python3WebSpider源代码测试过程解析
Dec 20 Python
用python实现学生管理系统
Jul 24 Python
提取视频中的音频 Python只需要三行代码!
May 10 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
使用 eAccelerator加速PHP代码的目的
2007/03/16 PHP
在Windows系统上安装PHP运行环境文字教程
2010/07/19 PHP
解析PHP汉字转换拼音的类
2013/06/18 PHP
PHP自定session保存路径及删除、注销与写入的方法
2014/11/18 PHP
PHP调用Linux命令权限不足问题解决方法
2015/02/07 PHP
Android App中DrawerLayout抽屉效果的菜单编写实例
2016/03/21 PHP
Prototype ObjectRange对象学习
2009/07/19 Javascript
script标签的 charset 属性使用说明
2010/12/04 Javascript
jQuery中$.fn的用法示例介绍
2013/11/05 Javascript
javascript中直接引用Microsoft的COM生成Word
2014/01/20 Javascript
Javascript实现获取窗口的大小和位置代码分享
2014/12/04 Javascript
jquery动态添加删除(tr/td)
2015/02/09 Javascript
JavaScript判断对象是否为数组
2015/12/22 Javascript
通过jquery toggleClass()属性制作文章段落更改背景颜色
2018/05/21 jQuery
vue.js内置组件之keep-alive组件使用
2018/07/10 Javascript
JS中验证整数和小数的正则表达式
2018/10/08 Javascript
Vue路由切换页面不更新问题解决方案
2020/07/10 Javascript
详解Python的Django框架中的Cookie相关处理
2015/07/22 Python
深入浅析python定时杀进程
2016/06/06 Python
详解Python中的array数组模块相关使用
2016/07/05 Python
浅谈python numpy中nonzero()的用法
2018/04/02 Python
pytorch 把MNIST数据集转换成图片和txt的方法
2018/05/20 Python
python selenium自动上传有赞单号的操作方法
2018/07/05 Python
python3 实现一行输入,空格隔开的示例
2018/11/14 Python
Python 通过调用接口获取公交信息的实例
2018/12/17 Python
python ipset管理 增删白名单的方法
2019/01/14 Python
pyqt 实现在Widgets中显示图片和文字的方法
2019/06/13 Python
详解python和matlab的优势与区别
2019/06/28 Python
Python实现疫情地图可视化
2021/02/05 Python
Superdry瑞典官网:英国日本街头风品牌
2017/05/17 全球购物
新奥尔良珠宝:Mignon Faget
2020/11/23 全球购物
Oracle快照(snapshot)
2015/03/13 面试题
打架检讨书500字
2014/01/29 职场文书
优秀教师推荐材料
2014/12/16 职场文书
Nginx使用X-Accel-Redirect实现静态文件下载的统计、鉴权、防盗链、限速等
2021/04/04 Servers
Go语言 go程释放操作(退出/销毁)
2021/04/30 Golang