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中的文件操作
Aug 28 Python
python+requests+unittest API接口测试实例(详解)
Jun 10 Python
python学习教程之使用py2exe打包
Sep 24 Python
Tensorflow模型实现预测或识别单张图片
Jul 19 Python
Django 批量插入数据的实现方法
Jan 12 Python
Python 统计位数为偶数的数字代码详解
Mar 15 Python
Python xlrd模块导入过程及常用操作
Jun 10 Python
Python 添加文件注释和函数注释操作
Aug 09 Python
pyqt5蒙版遮罩mask,setmask的使用
Jun 11 Python
Python天气语音播报小助手
Sep 25 Python
Python 恐龙跑跑小游戏实现流程
Feb 15 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
SONY SRF-22W(33W)的电路分析和维修案例
2021/03/02 无线电
PHP中动态显示签名和ip原理
2007/03/28 PHP
CodeIgniter输出中文乱码的两种解决办法
2014/06/12 PHP
Discuz批量替换帖子内容的方法(使用SQL更新数据库)
2014/06/23 PHP
PHP实现的进度条效果详解
2016/05/03 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
2016/08/12 PHP
Laravel5.7框架安装与使用学习笔记图文详解
2019/04/02 PHP
javascript web页面刷新的方法收集
2009/07/02 Javascript
javascript下arguments,caller,callee,call,apply示例及理解
2009/12/24 Javascript
锋利的jQuery 要点归纳(一) jQuery选择器
2010/03/21 Javascript
vue组件如何被其他项目引用
2017/04/13 Javascript
使用vue构建移动应用实战代码
2017/08/02 Javascript
Vue header组件开发详解
2018/01/26 Javascript
解决vue组件销毁之后计时器继续执行的问题
2020/07/21 Javascript
js将日期格式转换为YYYY-MM-DD HH:MM:SS
2020/09/18 Javascript
JavaScript ES 模块的使用
2020/11/12 Javascript
python中Genarator函数用法分析
2015/04/08 Python
Python 自动刷博客浏览量实例代码
2017/06/14 Python
python自动化报告的输出用例详解
2018/05/30 Python
python如何给字典的键对应的值为字典项的字典赋值
2019/07/05 Python
OpenCV 边缘检测
2019/07/10 Python
解决Python3.8用pip安装turtle-0.0.2出现错误问题
2020/02/11 Python
世界领先的电子书网站:eBooks.com(在线购买小说、非小说和教科书)
2019/03/30 全球购物
为什么在使用动态 SQL 语句时必须为低层数据库对象授予权限
2012/12/13 面试题
大学生村官工作感言
2014/01/10 职场文书
元旦文艺汇演主持词
2014/03/26 职场文书
关于环保的演讲稿
2014/05/10 职场文书
县政府办公室领导班子对照检查材料思想汇报
2014/09/28 职场文书
贫困证明书格式及范文
2014/10/15 职场文书
环境建议书
2015/02/04 职场文书
证券公司客户经理岗位职责
2015/04/09 职场文书
审查起诉阶段律师意见书
2015/05/19 职场文书
同学联谊会邀请函
2019/06/24 职场文书
python生成可执行exe控制Microsip自动填写号码并拨打功能
2021/06/21 Python
Python实现排序方法常见的四种
2021/07/15 Python
Python图像处理库PIL详细使用说明
2022/04/06 Python