Python 获取异常(Exception)信息的几种方法

 更新时间:2020年12月29日 09:10:58   作者:文渊  
这篇文章主要介绍了Python 获取异常(Exception)信息的几种方法,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下

异常信息的获取对于程序的调试非常重要,可以有助于快速定位有错误程序语句的位置。下面介绍几种 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中常见占位符的用法解析

    在Python编程中,经常需要在字符串中插入变量或占位符来构建动态的文本内容,这篇文章主要为大家介绍了一些常见占位符的使用,需要的可以了解下
    2024-01-01
  • 关于Python中的元组介绍

    关于Python中的元组介绍

    大家好,本篇文章主要讲的是关于Python中的元组介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • Python报错:ModuleNotFoundError的解决办法

    Python报错:ModuleNotFoundError的解决办法

    "ModuleNotFoundError: No module named 'xxx'"这个报错是个非常常见的报错,几乎每个python程序员都遇到过,下面这篇文章主要给大家介绍了关于Python报:ModuleNotFoundError错误的解决办法,需要的朋友可以参考下
    2022-06-06
  • 详谈Numpy中数组重塑、合并与拆分方法

    详谈Numpy中数组重塑、合并与拆分方法

    下面小编就为大家分享一篇详谈Numpy中数组重塑、合并与拆分方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • python使用DrissionPage库进行网页自动化操作和数据提取

    python使用DrissionPage库进行网页自动化操作和数据提取

    随着自动化测试、数据抓取和网页交互应用的日益增多,在众多的自动化库中,DrissionPage 作为一个新兴的库,以其简洁易用和强大的功能受到越来越多开发者的关注,本文将介绍如何使用 DrissionPage 进行网页自动化操作和数据提取,需要的朋友可以参考下
    2024-11-11
  • 快速入门python学习笔记

    快速入门python学习笔记

    给大家分享一下python的一周快速学习入门的笔记,如果你希望最快速度学习python,这个非常适合你。
    2017-12-12
  • Python实现简单的多任务mysql转xml的方法

    Python实现简单的多任务mysql转xml的方法

    这篇文章主要介绍了Python实现简单的多任务mysql转xml的方法,结合实例形式分析了Python查询mysql结果集转xml格式数据输出的相关操作技巧,需要的朋友可以参考下
    2017-02-02
  • Python模块MarkupPy与自定义html报告详解

    Python模块MarkupPy与自定义html报告详解

    MarkupPy是Python模块用于生成HTML和XML格式的字符串,它的主要作用是提供了一种比原生HTML/XML更加易读和易写的编写方式,通过Python代码来生成HTML或XML代码,这篇文章主要介绍了Python模块MarkupPy&自定义html报告的相关知识,需要的朋友可以参考下
    2023-07-07
  • python中append实例用法总结

    python中append实例用法总结

    在本篇文章中小编给各位分享的是关于python中append实例用法以及相关知识点,需要的朋友们可以学习下。
    2019-07-07
  • python之流程控制语句match-case详解

    python之流程控制语句match-case详解

    这篇文章主要介绍了python之流程控制语句match-case使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03

最新评论