我一直在查看traceback module ,我试图理解为什么 format_exception
需要第三个参数的回溯,而不是使用 __traceback__
。我尝试在我的代码中传递它,效果很好
最佳答案
回溯模块来自当前异常层次结构存在之前。请注意,没有一个函数明确提及异常对象;它们都涉及类型、值和回溯。在现代 Python 中,该值始终是异常对象,其他参数是多余的,但在古代版本的 Python 中,异常类型可以是字符串。在这种情况下,您会引发异常,例如
raise some_module.exception_string, some_arbitrary_object
和some_任意_object
将用作异常值,而不是传递给异常构造函数来创建异常值。您不会有可以检查类型和回溯的异常对象,因此您必须分别传递所有 3 条信息。
请参阅 Python 2.0 文档 raise和 Guido's article on how exceptions came to be classes了解更多详情。
关于python - 为什么traceback.format_exception需要traceback参数而不是使用ex.__traceback__?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18435530/