python - 为什么traceback.format_exception需要traceback参数而不是使用ex.__traceback__?

标签 python logging

我一直在查看traceback module ,我试图理解为什么 format_exception 需要第三个参数的回溯,而不是使用 __traceback__。我尝试在我的代码中传递它,效果很好

最佳答案

回溯模块来自当前异常层次结构存在之前。请注意,没有一个函数明确提及异常对象;它们都涉及类型、值和回溯。在现代 Python 中,该值始终是异常对象,其他参数是多余的,但在古代版本的 Python 中,异常类型可以是字符串。在这种情况下,您会引发异常,例如

raise some_module.exception_string, some_arbitrary_object

some_任意_object将用作异常值,而不是传递给异常构造函数来创建异常值。您不会有可以检查类型和回溯的异常对象,因此您必须分别传递所有 3 条信息。

请参阅 Python 2.0 文档 raiseGuido's article on how exceptions came to be classes了解更多详情。

关于python - 为什么traceback.format_exception需要traceback参数而不是使用ex.__traceback__?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18435530/

相关文章:

python - Matplotlib basemap drawcounties 不起作用

android - 具有多个类元素的 native Android 移动应用程序测试自动机导航

LInux 排序/uniq apache 日志

Java:使用 FileHandler 进行日志记录、旋转

python - 使用 pylint 文档参数时减少 Python 文档字符串中的冗余

python - 属性错误: module 'tensorflow.contrib.learn' has no attribute 'TensorFlowLinearClassifier'

python - 使用列表理解查找 kwargs 中也包含某个子字符串的最大 int 值

javascript - 查看 JS 中调用了哪些方法/事件

python - 带文件旋转器的全局 Python 记录器

apache - Log4j2 - 压缩老化的翻转文件,保持最后一个 X 文件未压缩