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类和继承用法实例
Jul 07 Python
python使用pandas处理大数据节省内存技巧(推荐)
May 05 Python
Python人工智能之路 之PyAudio 实现录音 自动化交互实现问答
Aug 13 Python
Python 实现文件读写、坐标寻址、查找替换功能
Sep 11 Python
Python openpyxl模块原理及用法解析
Jan 19 Python
浅谈tensorflow之内存暴涨问题
Feb 05 Python
Python2.6版本pip安装步骤解析
Aug 17 Python
Python实战之用tkinter库做一个鼠标模拟点击器
Apr 27 Python
Pytorch使用shuffle打乱数据的操作
May 20 Python
python Tkinter模块使用方法详解
Apr 07 Python
python实现商品进销存管理系统
May 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
php数组函数序列之array_sum() - 计算数组元素值之和
2011/10/29 PHP
php操作路径的经典方法(必看篇)
2016/10/04 PHP
jQuery学习3:操作元素属性和特性
2010/02/07 Javascript
jQuery获取iframe的document对象的方法
2014/10/10 Javascript
NodeJS学习笔记之Connect中间件应用实例
2015/01/27 NodeJs
如何编写高质量JS代码(续)
2015/02/25 Javascript
JavaScript给url网址进行encode编码的方法
2015/03/18 Javascript
简化版手机端照片预览组件
2015/04/13 Javascript
jQuery简单实现日历的方法
2015/05/04 Javascript
javascript中new关键字详解
2015/12/14 Javascript
jQuery Validate表单验证深入学习
2015/12/18 Javascript
JavaScript电子时钟倒计时第二款
2016/01/10 Javascript
如何高效率去掉js数组中的重复项
2016/04/12 Javascript
Bootstrap按钮组件详解
2016/04/26 Javascript
微信小程序 Video API实例详解
2016/10/02 Javascript
微信小程序 支付功能开发错误总结
2017/02/21 Javascript
微信小程序scroll-view实现横向滚动和上拉加载示例
2017/03/06 Javascript
vue.js指令和组件详细介绍及实例
2017/04/06 Javascript
详谈js对url进行编码和解码(三种方式的区别)
2017/08/16 Javascript
原生JS实现的雪花飘落动画效果
2018/05/03 Javascript
微信小程序实现折叠与展开文章功能
2018/06/12 Javascript
Vue表单控件数据绑定方法详解
2020/02/05 Javascript
jquery添加div实现消息聊天框
2020/02/08 jQuery
Node使用Nodemailer发送邮件的方法实现
2020/02/24 Javascript
vue 数据操作相关总结
2020/12/17 Vue.js
Python Deque 模块使用详解
2014/07/04 Python
python自动zip压缩目录的方法
2015/06/28 Python
Python 提取dict转换为xml/json/table并输出的实现代码
2016/08/28 Python
Python基于sftp及rsa密匙实现远程拷贝文件的方法
2016/09/21 Python
Python列表list内建函数用法实例分析【insert、remove、index、pop等】
2017/07/24 Python
Idea安装python显示无SDK问题解决方案
2020/08/12 Python
JAVA招聘远程笔试题
2015/07/23 面试题
中专毕业生自荐信范文
2013/11/28 职场文书
司机检讨书
2014/02/13 职场文书
投标服务承诺书
2014/05/28 职场文书
网吧消防安全责任书
2014/07/29 职场文书