我一直在关注traceback module,我试图理解为什么format_exception
需要第三个参数的追溯,而不是使用__traceback__
。我尝试在我的代码中传递它,它工作正常
答案 0 :(得分:1)
回溯模块来自当前异常层次结构之前。注意,没有一个函数明确提到异常对象;它们都是指类型,价值和追溯。在现代Python中,值始终是一个异常对象,其他参数是多余的,但在古老版本的Python中,异常类型可能是字符串。在这种情况下,你会引发像
这样的异常raise some_module.exception_string, some_arbitrary_object
和some_arbitrary_object
将用作异常值,而不是传递给异常构造函数来创建异常值。你不会有一个可以检查类型和回溯的异常对象,所以你必须分别传递所有3条信息。
有关详细信息,请参阅raise和Guido's article on how exceptions came to be classes的Python 2.0文档。