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编写暴力破解FTP密码小工具
Nov 19 Python
python文件操作之目录遍历实例分析
May 20 Python
Python编程实现控制cmd命令行显示颜色的方法示例
Aug 14 Python
Opencv+Python 色彩通道拆分及合并的示例
Dec 08 Python
在python3中pyqt5和mayavi不兼容问题的解决方法
Jan 08 Python
Pytorch加载部分预训练模型的参数实例
Aug 18 Python
Python collections模块使用方法详解
Aug 28 Python
python如何从键盘获取输入实例
Jun 18 Python
浅谈Python里面None True False之间的区别
Jul 09 Python
在Python中实现字典反转案例
Dec 05 Python
python 6种方法实现单例模式
Dec 15 Python
Django权限控制的使用
Jan 07 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自动载入类文件函数__autoload的使用方法
2019/03/25 PHP
利用Dojo和JSON建立无限级AJAX动态加载的功能模块树
2007/03/24 Javascript
ASP.NET jQuery 实例16 通过控件CustomValidator验证RadioButtonList
2012/02/03 Javascript
jQuery基础框架浅入剖析
2012/12/27 Javascript
用nodejs写的一个简单项目打包工具
2013/05/11 NodeJs
经过绑定元素时会多次触发mouseover和mouseout事件
2014/02/28 Javascript
node.js中的fs.openSync方法使用说明
2014/12/17 Javascript
Nodejs学习笔记之Stream模块
2015/01/13 NodeJs
深入理解JavaScript系列(17):面向对象编程之概论详细介绍
2015/03/04 Javascript
nodejs实现HTTPS发起POST请求
2015/04/23 NodeJs
javascript 使用for循环时该注意的问题-附问题总结
2015/08/19 Javascript
jQuery实现简单的文件上传进度条效果
2020/03/26 Javascript
leaflet的开发入门教程
2016/11/17 Javascript
基于vue.js实现侧边菜单栏
2017/03/20 Javascript
Bootstrap警告(Alerts)的实现方法
2017/03/22 Javascript
js实现城市级联菜单的2种方法
2017/06/23 Javascript
webpack打包node.js后端项目的方法
2018/03/10 Javascript
Node.JS段点续传:Nginx配置文件分段下载功能的实现方法
2018/03/12 Javascript
Node.js + express基本用法教程
2019/03/14 Javascript
详解JS函数防抖
2020/06/05 Javascript
浅析微信小程序自定义日历组件及flex布局最后一行对齐问题
2020/10/29 Javascript
python编程开发之textwrap文本样式处理技巧
2015/11/13 Python
人生苦短我用python python如何快速入门?
2018/03/12 Python
详解安装mitmproxy以及遇到的坑和简单用法
2019/01/21 Python
Python 动态导入对象,importlib.import_module()的使用方法
2019/08/28 Python
解决Jupyter因卸载重装导致的问题修复
2020/04/10 Python
python能在浏览器能运行吗
2020/06/17 Python
解决tensorflow读取本地MNITS_data失败的原因
2020/06/22 Python
python制作抽奖程序代码详解
2021/01/15 Python
Stylenanda中文站:韩国一线网络服装品牌
2016/12/22 全球购物
蹦床仓库:Trampoline Warehouse
2018/12/06 全球购物
巴西葡萄酒商店:Divvino
2020/02/22 全球购物
意大利奢侈品牌在线精品店:Jole.it
2020/11/23 全球购物
木工主管岗位职责
2013/12/08 职场文书
辩论赛主持词
2014/03/18 职场文书
Nginx的rewrite模块详解
2021/03/31 Servers