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标准库与第三方库详解
Jul 22 Python
在Python中处理字符串之isdecimal()方法的使用
May 20 Python
Python守护进程用法实例分析
Jun 04 Python
win与linux系统中python requests 安装
Dec 04 Python
轻松理解Python 中的 descriptor
Sep 15 Python
python使用Matplotlib画饼图
Sep 25 Python
对Python中小整数对象池和大整数对象池的使用详解
Jul 09 Python
Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)
Aug 12 Python
python创建学生管理系统
Nov 22 Python
Python数据可视化:幂律分布实例详解
Dec 07 Python
关于Python Tkinter Button控件command传参问题的解决方式
Mar 04 Python
Python定时任务APScheduler安装及使用解析
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
php中http与https跨域共享session的解决方法
2014/12/20 PHP
微信access_token的获取开发示例
2015/04/16 PHP
PHP接入支付宝接口失效流程详解
2020/11/10 PHP
PHP内存溢出优化代码详解
2021/02/26 PHP
ie和firefox中img对象区别的困惑
2006/12/27 Javascript
用js实现控制内容的向上向下滚动效果
2007/06/26 Javascript
轻轻松松学JS调试(不下载任何工具)
2010/04/14 Javascript
JQuery EasyUI 对话框的使用方法
2010/10/24 Javascript
jQuery如何获取同一个类标签的所有值(默认无法获取)
2014/09/25 Javascript
基于js与flash实现的网站flv视频播放插件代码
2014/10/14 Javascript
JavaScript继承模式粗探
2016/01/12 Javascript
JQuery 的跨域方法推荐_可跨任何网站
2016/05/18 Javascript
Jquery针对tr td的一些实用操作方法(必看篇)
2016/10/05 Javascript
Vuex之理解Getters的用法实例
2017/04/19 Javascript
JS实现的加减乘除四则运算计算器示例
2017/08/09 Javascript
深入理解Node.js中通用基础设计模式
2017/09/19 Javascript
vue-cli3 配置开发与测试环境详解
2019/05/17 Javascript
Vue开发中遇到的跨域问题及解决方法
2020/02/11 Javascript
Bootstrap告警框(alert)实现弹出效果和短暂显示后上浮消失的示例代码
2020/08/27 Javascript
[48:32]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs VG
2018/04/01 DOTA
Python标准库之sqlite3使用实例
2014/11/25 Python
对pandas处理json数据的方法详解
2019/02/08 Python
Python matplotlib画图与中文设置操作实例分析
2019/04/23 Python
Django forms表单 select下拉框的传值实例
2019/07/19 Python
Java 中访问数据库的步骤?Statement 和PreparedStatement 之间的区别?
2012/06/05 面试题
仓库管理专业个人自我评价范文
2013/11/11 职场文书
如何编写优秀的食品项目创业计划书
2014/01/23 职场文书
企业军训感言
2014/02/08 职场文书
食品科学与工程专业毕业生求职信范文
2014/07/21 职场文书
法人授权委托书样本
2014/09/19 职场文书
幼儿园法制宣传日活动总结
2014/11/01 职场文书
党的群众路线教育实践活动个人对照检查材料(校长)
2014/11/05 职场文书
世界卫生日宣传活动总结
2015/02/09 职场文书
爱心募捐通知范文
2015/04/27 职场文书
Nginx下SSL证书安装部署步骤介绍
2021/12/06 Servers
CentOS7安装GlusterFS集群以及相关配置
2022/04/12 Servers