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中关于使用模块的基础知识
May 24 Python
Python使用smtp和pop简单收发邮件完整实例
Jan 09 Python
Python嵌套列表转一维的方法(压平嵌套列表)
Jul 03 Python
python安装twisted的问题解析
Aug 21 Python
对python调用RPC接口的实例详解
Jan 03 Python
python自动结束mysql慢查询会话的实例代码
Oct 27 Python
pytorch制作自己的LMDB数据操作示例
Dec 18 Python
Python3之外部文件调用Django程序操作model等文件实现方式
Apr 07 Python
python中的错误如何查看
Jul 08 Python
Python高并发和多线程有什么关系
Nov 14 Python
python元组拆包实现方法
Feb 28 Python
详解python的内存分配机制
May 10 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桌面中心(四) 数据显示
2007/03/11 PHP
C/S和B/S两种架构区别与优缺点分析
2014/10/23 PHP
在php中设置session用memcache来存储的方法总结
2016/01/14 PHP
基于PHP实现商品成交时发送短信功能
2016/05/11 PHP
PHP实现的多进程控制demo示例
2019/07/22 PHP
Jquery实现带动画效果的经典二级导航菜单
2013/03/22 Javascript
javascript获取元素CSS样式代码示例
2013/11/28 Javascript
javascript从右边截取指定字符串的三种实现方法
2013/11/29 Javascript
验证控件与Button的OnClientClick事件详细解析
2013/12/04 Javascript
JavaScript知识点总结(六)之JavaScript判断变量数据类型
2016/05/31 Javascript
JavaScript性能优化总结之加载与执行
2016/08/11 Javascript
微信小程序 loading 详解及实例代码
2016/11/09 Javascript
深入理解requireJS-实现一个简单的模块加载器
2018/01/15 Javascript
vue递归获取父元素的元素实例
2020/08/07 Javascript
OpenLayers3加载常用控件使用方法详解
2020/09/25 Javascript
uni-app 自定义底部导航栏的实现
2020/12/11 Javascript
python 参数列表中的self 显式不等于冗余
2008/12/01 Python
详解Python3.1版本带来的核心变化
2015/04/07 Python
Python中利用sorted()函数排序的简单教程
2015/04/27 Python
说说如何遍历Python列表的方法示例
2019/02/11 Python
十分钟搞定pandas(入门教程)
2019/06/21 Python
django 信号调度机制详解
2019/07/19 Python
Django import export实现数据库导入导出方式
2020/04/03 Python
django的autoreload机制实现
2020/06/03 Python
keras读取h5文件load_weights、load代码操作
2020/06/12 Python
Tensorflow使用Anaconda、pycharm安装记录
2020/07/29 Python
利用HTML5 Canvas制作一个简单的打飞机游戏
2015/05/11 HTML / CSS
Currentbody西班牙:美容仪专家
2019/09/28 全球购物
优秀毕业生自荐信范文
2014/01/01 职场文书
企业宣传方案
2014/03/04 职场文书
关于梦想的演讲稿
2014/05/05 职场文书
化工专业求职信
2014/07/01 职场文书
高中优秀作文(范文)
2019/08/15 职场文书
英镑符号 £
2022/02/17 杂记
《辉夜大小姐想让我告白》第三季正式预告
2022/03/20 日漫
SpringBoot详解自定义Stater的应用
2022/07/15 Java/Android