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 循环while和for in简单实例
Aug 16 Python
Python 备份程序代码实现
Mar 06 Python
使用Python写CUDA程序的方法
Mar 27 Python
python如何压缩新文件到已有ZIP文件
Mar 14 Python
Python 十六进制整数与ASCii编码字符串相互转换方法
Jul 09 Python
Python Django 简单分页的实现代码解析
Aug 21 Python
IronPython连接MySQL的方法步骤
Dec 27 Python
python 实现围棋游戏(纯tkinter gui)
Nov 13 Python
python性能测试工具locust的使用
Dec 28 Python
python实战之一步一步教你绘制小猪佩奇
Apr 22 Python
如何在pycharm中快捷安装pip命令(如pygame)
May 31 Python
分享3个非常实用的 Python 模块
Mar 03 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删除与复制文件夹及其文件夹下所有文件的实现代码
2013/01/23 PHP
PHPAnalysis中文分词类详解
2014/06/13 PHP
PHP中iconv函数转码时截断字符问题的解决方法
2015/01/21 PHP
PHP四舍五入、取整、round函数使用示例
2015/02/06 PHP
php查看当前Session的ID实例
2015/03/16 PHP
javascript Array.remove() 数组删除
2009/08/06 Javascript
JavaScript 加号(+)运算符号
2009/12/06 Javascript
基于jquery的设置页面文本框 只能输入数字的实现代码
2011/04/19 Javascript
js动态修改表格行colspan列跨度的方法
2015/03/30 Javascript
HTML5实现留言和回复页面样式
2015/07/22 Javascript
javascript实现输出指定行数正方形图案的方法
2015/08/03 Javascript
JavaScript判断表单中多选框checkbox选中个数的方法
2015/08/17 Javascript
jQuery右侧选项卡焦点图片轮播特效代码分享
2015/09/05 Javascript
js通过classname来获取元素的方法
2016/11/24 Javascript
jquery PrintArea 实现票据的套打功能(代码)
2017/03/17 Javascript
实例详解JSON取值(key是中文或者数字)方式
2017/08/24 Javascript
利用pm2部署多个node.js项目的配置教程
2017/10/22 Javascript
微信小程使用swiper组件实现图片轮播切换显示功能【附源码下载】
2017/12/12 Javascript
vue+Element-ui实现分页效果实例代码详解
2018/12/10 Javascript
Vue 的双向绑定原理与用法揭秘
2020/05/06 Javascript
Node 使用express-http-proxy 做api网关的实现
2020/10/15 Javascript
[50:04]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第二局
2016/02/28 DOTA
[01:18:21]EG vs TNC Supermajor小组赛B组败者组第一轮 BO3 第一场 6.2
2018/06/03 DOTA
python 类对象和实例对象动态添加方法(分享)
2017/12/31 Python
Python修改文件往指定行插入内容的实例
2019/01/30 Python
python绘制雪景图
2019/12/16 Python
Python如何根据时间序列数据作图
2020/05/12 Python
tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)
2020/06/30 Python
CSS3颜色值RGBA与渐变色使用介绍
2020/03/06 HTML / CSS
详解webapp页面滚动卡顿的解决办法
2018/12/26 HTML / CSS
京东奢侈品:全球奢侈品牌
2018/03/17 全球购物
企业委托书范本
2014/09/13 职场文书
2014政府领导班子对照检查材料思想汇报(3篇)
2014/09/26 职场文书
幼儿园中秋节活动总结
2015/03/23 职场文书
欠条范文
2015/07/03 职场文书
人物搭配车车超萌联名预备中 【咒术迴战】 ⨯ 【天竺鼠车车】 展开合作
2022/04/11 日漫