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的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享
Jul 09 Python
python使用正则搜索字符串或文件中的浮点数代码实例
Jul 11 Python
Python捕捉和模拟鼠标事件的方法
Jun 03 Python
Python使用QRCode模块生成二维码实例详解
Jun 14 Python
python基础练习之几个简单的游戏
Nov 10 Python
Pipenv一键搭建python虚拟环境的方法
May 22 Python
python如何求解两数的最大公约数
Sep 27 Python
Python中asyncio模块的深入讲解
Jun 10 Python
手写一个python迭代器过程详解
Aug 27 Python
python利用dlib获取人脸的68个landmark
Nov 27 Python
使用Puppeteer爬取微信文章的实现
Feb 11 Python
使用python的pyplot绘制函数实例
Feb 13 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实现aes加密类分享
2014/02/16 PHP
基于php流程控制语句和循环控制语句(讲解)
2017/10/23 PHP
PHP 数组操作详解【遍历、指针、函数等】
2020/05/13 PHP
浅谈JavaScript函数节流
2014/12/09 Javascript
js获取及判断键盘按键的方法
2015/12/01 Javascript
基于jquery实现轮播焦点图插件
2016/03/31 Javascript
connection reset by peer问题总结及解决方案
2016/10/21 Javascript
jQuery实现圣诞节礼物传送(花式轮播)
2016/12/25 Javascript
javascript 初学教程及五子棋小程序的简单实现
2017/07/04 Javascript
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
2018/08/28 jQuery
详解Vue iview IE浏览器不兼容报错(Iview Bable polyfill)
2019/01/07 Javascript
简述vue-cli中chainWebpack的使用方法
2019/07/30 Javascript
学前端,css与javascript重难点浅析
2020/06/11 Javascript
在Echarts图中给坐标轴加一个标识线markLine
2020/07/20 Javascript
uniapp实现可滑动选项卡
2020/10/21 Javascript
Vue 401配合Vuex防止多次弹框的案例
2020/11/11 Javascript
python从ftp下载数据保存实例
2013/11/20 Python
Python中MYSQLdb出现乱码的解决方法
2014/10/11 Python
Python输出由1,2,3,4组成的互不相同且无重复的三位数
2018/02/01 Python
TensorFlow变量管理详解
2018/03/10 Python
Python找出微信上删除你好友的人脚本写法
2018/11/01 Python
pandas.DataFrame删除/选取含有特定数值的行或列实例
2018/11/07 Python
在python中以相同顺序shuffle两个list的方法
2018/12/13 Python
pandas DataFrame创建方法的方式
2019/08/02 Python
Python中*args和**kwargs的区别详解
2019/09/17 Python
Python协程操作之gevent(yield阻塞,greenlet),协程实现多任务(有规律的交替协作执行)用法详解
2019/10/14 Python
python 实现让字典的value 成为列表
2019/12/16 Python
Python列表倒序输出及其效率详解
2020/03/04 Python
python简单利用字典破解zip文件口令
2020/09/07 Python
HTML5 Video标签的属性、方法和事件汇总介绍
2015/04/24 HTML / CSS
使用html5 canvas绘制圆环动效
2019/06/03 HTML / CSS
出售房屋委托书范本
2014/09/24 职场文书
机关单位工作失职检讨书
2014/11/20 职场文书
党员干部廉洁自律承诺书
2015/04/28 职场文书
运动会闭幕式致辞
2015/07/29 职场文书
Python网络编程之ZeroMQ知识总结
2021/04/25 Python