python - 使用 traceback.print_exc() 打印 AttributeError 的回溯时出现 Python TypeError
问题描述
一个可重现的例子:
import traceback
X = None
try:
X.text
except (TypeError, AttributeError) as e:
traceback.print_exc(e)
这将在以下位置引发错误traceback.print_exc(e)
:
TypeError: '>=' not supported between instances of 'AttributeError' and 'int'
任何建议为什么会发生这种情况?
解决方案
基于文档:Python Docs - traceback 模块
traceback.print_exc 的第一个参数也不例外,它是回溯深度的深度限制。您在 traceback 模块中遇到了异常,因为它希望第一个参数是一个限制。
您的代码需要是:
import traceback
X = None
try:
X.text
except (TypeError, AttributeError) as e:
traceback.print_exc()
异常数据作为线程全局保存,在sys.exc_info()
其中traceback.print_exc()
使用。
推荐阅读
- github - 我试图检查照片,但它们都不是大写的,问题出在哪里?
- r - 需要根据汇总函数的结果在R中生成随机分布的数据
- rundeck - Rundeck - JSON 格式的 API 导入作业响应
- react-native - statusBar 选项无效
- c# - .Net Core 2.2 Sharepoint 集成
- ios - Xcode 升级后 Flutter 无法为 iOS 构建
- discord.py - @client.command(),它接受什么参数?
- python - Pyinstaller Spacy FileNotFoundError: [Errno 2] No such file or directory: ...\\dist\\app\\thinc\\backends\\_custom_kernels.cu
- python - Python:从段落中识别和提取日期时间
- filter - POWERPIVOT - DAX:所有功能不起作用