1

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

4

1 回答 1

2

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

raise some_module.exception_string, some_arbitrary_object

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

有关更多详细信息,请参阅raise的 Python 2.0 文档和Guido 关于异常如何成为类的文章

于 2013-08-26T02:12:57.813 回答