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操作MySQL简单实现方法
Jan 26 Python
Python中操作MySQL入门实例
Feb 08 Python
浅谈django开发者模式中的autoreload是如何实现的
Aug 18 Python
Python开发中爬虫使用代理proxy抓取网页的方法示例
Sep 26 Python
python编程使用selenium模拟登陆淘宝实例代码
Jan 25 Python
Selenium(Python web测试工具)基本用法详解
Aug 10 Python
Python3 读、写Excel文件的操作方法
Oct 20 Python
numpy 对矩阵中Nan的处理:采用平均值的方法
Oct 30 Python
django 链接多个数据库 并使用原生sql实现
Mar 28 Python
python+selenium+chromedriver实现爬虫示例代码
Apr 10 Python
python小白切忌乱用表达式
May 29 Python
python编程学习使用管道Pipe编写优化代码
Nov 20 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中使用XML
2006/10/09 PHP
深入php list()函数的详解
2013/06/05 PHP
php遍历目录方法小结
2015/03/10 PHP
PHP串行化与反串行化实例分析
2016/12/27 PHP
PHP单例模式模拟Java Bean实现方法示例
2018/12/07 PHP
yii2.0框架数据库操作简单示例【添加,修改,删除,查询,打印等】
2020/04/13 PHP
javascript 客户端验证上传图片的大小(兼容IE和火狐)
2009/08/15 Javascript
js中继承的几种用法总结(apply,call,prototype)
2013/12/26 Javascript
滚动条响应鼠标滑轮事件实现上下滚动的js代码
2014/06/30 Javascript
深入分析js的冒泡事件
2014/12/05 Javascript
jQuery DOM插入节点操作指南
2015/03/03 Javascript
jQuery实现的超链接提示效果示例【附demo源码下载】
2016/09/09 Javascript
非常优秀的JS图片轮播插件Swiper的用法
2017/01/03 Javascript
详解ES6之用let声明变量以及let loop机制
2017/07/15 Javascript
JS中利用FileReader实现上传图片前本地预览功能
2018/03/02 Javascript
vue+vant实现购物车全选和反选功能
2020/11/17 Vue.js
布同 统计英文单词的个数的python代码
2011/03/13 Python
Python实现多行注释的另类方法
2014/08/22 Python
Python实现的视频播放器功能完整示例
2018/02/01 Python
创建pycharm的自定义python模板方法
2018/05/23 Python
Python检查ping终端的方法
2019/01/26 Python
Django实现web端tailf日志文件功能及实例详解
2019/07/28 Python
python数据持久存储 pickle模块的基本使用方法解析
2019/08/30 Python
ipad上运行python的方法步骤
2019/10/12 Python
Python selenium 自动化脚本打包成一个exe文件(推荐)
2020/01/14 Python
python tkinter之顶层菜单、弹出菜单实例
2020/03/04 Python
python GUI库图形界面开发之PyQt5 MDI(多文档窗口)QMidArea详细使用方法与实例
2020/03/05 Python
中学生学习生活的自我评价
2013/10/26 职场文书
医院实习接收函
2014/01/12 职场文书
个人实习生的自我评价
2014/02/16 职场文书
党员干部群众路线个人整改措施
2014/09/18 职场文书
公司领导班子召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
春季运动会开幕词
2015/01/28 职场文书
三十年同学聚会致辞
2015/07/28 职场文书
2016春季幼儿园开学寄语
2015/12/03 职场文书
成人成长感言如何写?
2019/08/16 职场文书