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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Python获取异常(Exception)信息的⼏种⽅法
异常信息的获取对于程序的调试⾮常重要,可以有助于快速定位有错误程序语句的位置。

下⾯介绍⼏种 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 获取异常信息的资料请关注其它相关⽂章!。

相关文档
最新文档