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根据时间生成mongodb的ObjectId的方法
Mar 13 Python
Python中List.count()方法的使用教程
May 20 Python
python基础教程之匿名函数lambda
Jan 17 Python
Python字典实现简单的三级菜单(实例讲解)
Jul 31 Python
Vue的el-scrollbar实现自定义滚动
May 29 Python
Python requests库用法实例详解
Aug 14 Python
Python运行不显示DOS窗口的解决方法
Oct 22 Python
python 多线程中子线程和主线程相互通信方法
Nov 09 Python
Python第三方Window模块文件的几种安装方法
Nov 22 Python
python3.6根据m3u8下载mp4视频
Jun 17 Python
python运用sklearn实现KNN分类算法
Oct 16 Python
python用分数表示矩阵的方法实例
Jan 11 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输出xml属性的方法
2015/03/19 PHP
php实现的mysqldb读写分离操作类示例
2017/02/07 PHP
PHP实现长轮询消息实时推送功能代码实例讲解
2021/02/26 PHP
js cookies 常见网页木马挂马代码 24小时只加载一次
2009/04/13 Javascript
关于jQuery object and DOM element
2013/04/15 Javascript
jquery和js实现对div的隐藏和显示方法
2014/09/26 Javascript
js实现数字每三位加逗号的方法
2015/02/05 Javascript
js如何改变文章的字体大小
2016/01/08 Javascript
基于Bootstrap实现下拉菜单项和表单导航条(两个菜单项,一个下拉菜单和登录表单导航条)
2016/07/22 Javascript
jQuery EasyUI编辑DataGrid用combobox实现多级联动
2016/08/29 Javascript
利用jquery正则表达式在页面验证url网址输入是否正确
2017/04/04 jQuery
微信小程序开发教程之增加mixin扩展
2017/08/09 Javascript
微信小程序视图template模板引用的实例详解
2017/09/20 Javascript
深入剖析Node.js cluster模块
2018/05/23 Javascript
python smtplib模块发送SSL/TLS安全邮件实例
2015/04/08 Python
python框架中flask知识点总结
2018/08/17 Python
Python中GIL的使用详解
2018/10/03 Python
python字典的遍历3种方法详解
2019/08/10 Python
python实现截取屏幕保存文件,删除N天前截图的例子
2019/08/27 Python
python文件及目录操作代码汇总
2020/07/08 Python
Django xadmin安装及使用详解
2020/10/26 Python
JD Sports比利时官网:英国领先的运动鞋和运动服饰零售商
2018/10/10 全球购物
垃圾回收的优点和原理
2014/05/16 面试题
什么是servlet
2012/05/08 面试题
儿科护理实习自我鉴定
2013/09/19 职场文书
活动宣传策划方案
2014/05/23 职场文书
校园标语大全
2014/06/19 职场文书
医院党员公开承诺书
2014/08/30 职场文书
合伙经营协议书范本
2014/09/13 职场文书
股份转让协议书范本
2015/01/27 职场文书
小学五一劳动节活动总结
2015/02/09 职场文书
2016大学军训心得体会
2016/01/11 职场文书
《夜莺的歌声》教学反思
2016/02/22 职场文书
诗词赏析-(浣溪沙)
2019/08/13 职场文书
nginx实现动静分离的方法示例
2021/11/07 Servers
vue组件vue-esign实现电子签名
2022/04/21 Vue.js