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 相关文章推荐
用PyQt进行Python图形界面的程序的开发的入门指引
Apr 14 Python
Python的Flask站点中集成xhEditor文本编辑器的教程
Jun 13 Python
python实现朴素贝叶斯算法
Nov 19 Python
对python中数据集划分函数StratifiedShuffleSplit的使用详解
Dec 11 Python
Python实现的调用C语言函数功能简单实例
Mar 13 Python
Django中如何使用sass的方法步骤
Jul 09 Python
Django 过滤器汇总及自定义过滤器使用详解
Jul 19 Python
解决Atom安装Hydrogen无法运行python3的问题
Aug 28 Python
python实现通过队列完成进程间的多任务功能示例
Oct 28 Python
关于Python字符串显示u...的解决方式
Mar 06 Python
神经网络训练采用gpu设置的方式
Mar 03 Python
python实现一个简单的贪吃蛇游戏附代码
Jun 28 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格式化时间戳显示友好的时间实现思路及代码
2014/10/23 PHP
PHP YII框架开发小技巧之模型(models)中rules自定义验证规则
2015/11/16 PHP
php实现的debug log日志操作类实例
2016/07/12 PHP
用Javascript评估用户输入密码的强度(Knockout版)
2011/11/30 Javascript
javascript打印输出json实例
2013/11/11 Javascript
以JSON形式将JS中Array对象数组传至后台的方法
2014/01/06 Javascript
JavaScript给input的value赋值引发的关于基本类型值和引用类型值问题
2015/12/07 Javascript
精通JavaScript的this关键字
2020/05/28 Javascript
简单谈谈json跨域
2016/03/13 Javascript
NodeJS的Promise的用法解析
2016/05/05 NodeJs
基于jQuery实现仿微博发布框字数提示
2016/07/27 Javascript
详解Vue路由开启keep-alive时的注意点
2017/06/20 Javascript
Node.js使用Express.Router的方法
2017/11/14 Javascript
小试小程序云开发(小结)
2019/06/06 Javascript
一次让你了解全部JavaScript的作用域
2019/06/24 Javascript
vue实现标签云效果的示例
2020/11/09 Javascript
python paramiko实现ssh远程访问的方法
2013/12/03 Python
Python argv用法详解
2016/01/08 Python
python框架django基础指南
2016/09/08 Python
详解Python多线程Selenium跨浏览器测试
2017/04/01 Python
python实现输入数字的连续加减方法
2018/06/22 Python
pygame游戏之旅 添加icon和bgm音效的方法
2018/11/21 Python
Python代码太长换行的实现
2019/07/05 Python
Pycharm及python安装详细步骤及PyCharm配置整理(推荐)
2020/07/31 Python
python+openCV对视频进行截取的实现
2020/11/27 Python
详解pandas映射与数据转换
2021/01/22 Python
家庭睡衣和家庭用品:Little Blue House
2018/03/18 全球购物
用Python写一个for循环的例子
2016/07/19 面试题
小学生开学感言
2014/02/28 职场文书
伊琍体标语
2014/06/25 职场文书
助学贷款贫困证明
2014/09/23 职场文书
酒店办公室主任岗位职责
2015/04/01 职场文书
文明礼仪主题班会
2015/08/13 职场文书
numpy数据类型dtype转换实现
2021/04/24 Python
详解RedisTemplate下Redis分布式锁引发的系列问题
2021/04/27 Redis
mysql中整数数据类型tinyint详解
2021/12/06 MySQL