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获取局域网占带宽最大3个ip的方法
Jul 09 Python
python 添加用户设置密码并发邮件给root用户
Jul 25 Python
更改Ubuntu默认python版本的两种方法python-&gt; Anaconda
Dec 18 Python
python验证码识别教程之灰度处理、二值化、降噪与tesserocr识别
Jun 04 Python
python 字典修改键(key)的几种方法
Aug 10 Python
Flask Web开发入门之文件上传(八)
Aug 17 Python
python3.5绘制随机漫步图
Aug 27 Python
Python实现的微信支付方式总结【三种方式】
Apr 13 Python
深入了解Python枚举类型的相关知识
Jul 09 Python
python3.8 微信发送服务器监控报警消息代码实现
Nov 05 Python
使用Django清空数据库并重新生成
Apr 03 Python
tensorflow 动态获取 BatchSzie 的大小实例
Jun 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
星际争霸兵种名称对照表
2020/03/04 星际争霸
第八节 访问方式 [8]
2006/10/09 PHP
解析php函数method_exists()与is_callable()的区别
2013/06/21 PHP
深入file_get_contents函数抓取内容失败的原因分析
2013/06/25 PHP
CI框架中cookie的操作方法分析
2014/12/12 PHP
php去除html标记的原生函数详解
2015/01/27 PHP
php生成年月日下载列表的方法
2015/04/24 PHP
学习ExtJS border布局
2009/10/08 Javascript
jQueryUI的Dialog的简单封装
2010/06/07 Javascript
javascript实现的使用方向键控制光标在table单元格中切换
2010/11/17 Javascript
jquery ajax 调用失败的原因示例介绍
2013/09/27 Javascript
Jquery $.getJSON 在IE下的缓存问题解决方法
2014/10/10 Javascript
JavaScript数值千分位格式化的两种简单实现方法
2016/08/01 Javascript
浅谈MVC+EF easyui dataGrid 动态加载分页表格
2016/11/10 Javascript
原生Javascript插件开发实践
2017/01/09 Javascript
jQuery实现分页功能(含ajax请求、后台数据、附完整demo)
2017/04/03 jQuery
微信小程序自定义导航隐藏和显示功能
2017/06/13 Javascript
基于AngularJS的拖拽文件上传的实例代码
2017/07/15 Javascript
原生js 封装get ,post, delete 请求的实例
2017/08/11 Javascript
vue中如何动态绑定图片,vue中通过data返回图片路径的方法
2018/02/07 Javascript
vue响应式更新机制及不使用框架实现简单的数据双向绑定问题
2019/06/27 Javascript
在Webpack中用url-loader处理图片和字体的问题
2020/04/28 Javascript
Python判断值是否在list或set中的性能对比分析
2016/04/16 Python
浅谈python中拼接路径os.path.join斜杠的问题
2018/10/23 Python
Django admin model 汉化显示文字的实现方法
2019/08/12 Python
anaconda升级sklearn版本的实现方法
2021/02/22 Python
Pop In A Box英国:Funko POP搪胶公仔
2019/05/27 全球购物
参观监狱心得体会
2014/01/02 职场文书
销售员岗位职责范本
2014/02/03 职场文书
中学生自我鉴定
2014/02/04 职场文书
技校毕业生自荐信范文
2014/03/07 职场文书
《老山界》教学反思
2014/04/08 职场文书
学雷锋宣传标语
2014/06/25 职场文书
大学生求职自荐信
2015/03/24 职场文书
2019最新版劳务派遣管理制度
2019/08/16 职场文书
golang fmt格式“占位符”的实例用法详解
2021/07/04 Golang