不更改回溯怎么办?您要求的两件事都可以通过不同的方式轻松完成。
- 如果库中的异常捕获在开发人员的代码中,而引发了新的异常,那么原始的回溯当然会被抛弃。通常,这就是异常的处理方式……如果您只允许引发原始异常,但您要对其进行删节以删除所有“上”帧,则实际的异常将毫无意义,因为回溯中的最后一行不会本身有能力提出例外。
- 要删除最后几帧,您可以请求缩短回溯…诸如traceback.print_exception()之类的参数使用“ limit”参数,可用于跳过最后几个条目。
话虽如此,如果您确实需要的话,应该很有可能对追溯进行补救…但是您将在哪里做呢?如果在顶层的某些包装器代码中,则可以简单地获取回溯,进行切片以删除不需要的部分,然后使用“回溯”模块中的函数根据需要进行格式化/打印。



