Python 获取异常(Exception)信息的几种方法


Posted in Python onDecember 29, 2020

异常信息的获取对于程序的调试非常重要,可以有助于快速定位有错误程序语句的位置。下面介绍几种 Python 中获取异常信息的方法,这里获取异常(Exception)信息采用 try…except… 程序结构。

如下所示:

try:
  print(x)
except Exception as e:
  print(e)

1. str(e)

返回字符串类型,只给出异常信息,不包括异常信息的类型,如:

try:
  print(x)
except Exception as e:
  print(str(e))

打印结果:

name 'x' is not defined

2. repr(e)

给出较全的异常信息,包括异常信息的类型,如:

try:
  print(x)
except Exception as e:
  print(repr(e))

打印结果:

NameError("name 'x' is not defined",)

一般情况下,当我们知道异常信息类型后,可以对异常进行更精确的捕获,如:

try:
  print(x)
except NameError:
  print('Exception Type: NameError')
except Exception as e:
  print(str(e))

3. 采用 traceback 模块

需要导入 traceback 模块,此时获取的信息最全,与 Python 命令行运行程序出现错误信息一致。

用法:使用 traceback.print_exc() 或 traceback.format_exc() 打印错误。

区别:traceback.print_exc() 直接打印错误,traceback.format_exc() 返回字符串。

示例如下:

import traceback

try:
  print(x)
except Exception as e:
  traceback.print_exc()

等价于:

import traceback

try:
  print(x)
except Exception as e:
  msg = traceback.format_exc()
  print(msg)

打印结果都是:

Traceback (most recent call last):
 File "E:/study/python/get_exception.py", line 4, in <module>
  print(x)
NameError: name 'x' is not defined

traceback.print_exc() 还可以接受 file 参数直接写入到一个文件。比如:

# 写入到 tb.txt 文件中
traceback.print_exc(file=open('tb.txt','w+'))

以上就是Python 获取异常(Exception)信息的几种方法的详细内容,更多关于python 获取异常信息的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
通过代码实例展示Python中列表生成式的用法
Mar 31 Python
详解Python的Django框架中inclusion_tag的使用
Jul 21 Python
用Python的Django框架来制作一个RSS阅读器
Jul 22 Python
Python实现的下载网页源码功能示例
Jun 13 Python
Python+OpenCV目标跟踪实现基本的运动检测
Jul 10 Python
python中字符串内置函数的用法总结
Sep 13 Python
Python实现查找最小的k个数示例【两种解法】
Jan 08 Python
Django框架之DRF 基于mixins来封装的视图详解
Jul 23 Python
Python实现字符串中某个字母的替代功能
Oct 21 Python
python抓取多种类型的页面方法实例
Nov 20 Python
Python线程协作threading.Condition实现过程解析
Mar 12 Python
Python循环之while无限迭代
Apr 30 Python
python 将html转换为pdf的几种方法
Dec 29 #Python
python实现ping命令小程序
Dec 28 #Python
如何用python 操作zookeeper
Dec 28 #Python
Pycharm在指定目录下生成文件和删除文件的实现
Dec 28 #Python
Python用Jira库来操作Jira
Dec 28 #Python
python性能测试工具locust的使用
Dec 28 #Python
Python+kivy BoxLayout布局示例代码详解
Dec 28 #Python
You might like
德劲1103二次变频版的打磨
2021/03/02 无线电
ionCube 一款类似zend的PHP加密/解密工具
2010/07/25 PHP
IE中jscript/javascript的条件编译
2006/09/07 Javascript
&amp;lt;script defer&amp;gt; defer 是什么意思
2009/05/10 Javascript
Prototype Number对象 学习
2009/07/19 Javascript
利用onresize使得div可以随着屏幕大小而自适应的代码
2010/01/15 Javascript
Extjs中TabPane如何嵌套在其他网页中实现思路及代码
2013/01/27 Javascript
jQuery Mobile的loading对话框显示/隐藏方法分享
2013/11/26 Javascript
一个Action如何调用两个不同的方法
2014/05/22 Javascript
javascript表格隔行变色加鼠标移入移出及点击效果的方法
2015/04/10 Javascript
JavaScript时间转换处理函数
2015/04/14 Javascript
Perl Substr()函数及函数的应用
2015/12/16 Javascript
原生JS实现-星级评分系统的简单实例
2016/08/21 Javascript
基于JavaScript实现下拉列表左右移动代码
2017/02/07 Javascript
Vue+Vux项目实践完整代码
2017/11/30 Javascript
微信小程序地图绘制线段并且测量(实例代码)
2020/01/02 Javascript
JS实现可控制的进度条
2020/03/25 Javascript
js实现全选和全不选功能
2020/07/28 Javascript
Python实现压缩文件夹与解压缩zip文件的方法
2018/09/01 Python
PyQt5+Caffe+Opencv搭建人脸识别登录界面
2019/08/28 Python
详细分析Python可变对象和不可变对象
2020/07/09 Python
Python求区间正整数内所有素数之和的方法实例
2020/10/13 Python
html5本地存储之localstorage 、本地数据库、sessionStorage简单使用示例
2014/05/08 HTML / CSS
HTML5 Blob对象的具体使用
2020/05/22 HTML / CSS
阿迪达斯意大利在线商店:adidas意大利
2016/09/19 全球购物
美国知名艺术画网站:Art.com
2017/02/09 全球购物
大专生的学习自我评价
2013/12/04 职场文书
工厂厂长的职责
2013/12/12 职场文书
五年级科学教学反思
2014/02/05 职场文书
关于教师节的演讲稿
2014/09/04 职场文书
离婚协议书范文2014
2014/10/16 职场文书
放射科岗位职责
2015/02/14 职场文书
2015毕业生实习期工作总结
2015/04/09 职场文书
2015年禁毒工作总结
2015/04/30 职场文书
入党积极分子考察意见
2015/06/02 职场文书
如何使用注解方式实现 Redis 分布式锁
2022/07/23 Redis