我生成了一个Greenlet并将其链接到可调用对象。一段时间后,Greenlet失败,并显示异常。链接的可调用对象被调用。太好了!

这是问题所在:

正如您所期望的那样,异常(exception)的回溯出现在我的控制台上。但是我想在链接的可调用对象中使用该回溯来做一些事情。如何在链接的可调用对象中访问该回溯?

(我的第一个本能是使用traceback.extract_stack(),但是事实证明,它为链接的可调用对象本身提供了回溯,而不是为Exception提供了回溯。)

最佳答案

当Greenlet死亡时,有意不保存回溯。如果将其保存,它将使许多希望删除的对象保持 Activity 状态,这一点尤其重要,如果该对象管理某些资源(打开文件或套接字)。

如果要保存回溯,则必须自己完成。

关于python - 如何在gevent中捕获回溯,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9268916/

10-15 19:32