如何在gevent中捕获回溯

kku*_*ian 6 python exception-handling gevent greenlets

我已经产生了一个Greenlet并将其链接到一个可调用的.一段时间后,Greenlet因异常而失败.链接的callable被调用.这一切都很棒!

这是问题所在:

正如您所期望的那样,我的控制台上会出现异常的回溯.但我想在链接的callable中使用该回溯做一些事情.如何在链接的callable中访问该回溯?

(我的第一直觉就是使用traceback.extract_stack(),但事实证明它为链接的callable本身而不是Exception提供了追溯.)

Den*_*nko 17

当Greenlet死亡时,故意不保存回溯.如果它被保存,它将保留许多预期被删除的对象,这尤其是在对象管理某些资源(打开文件或套接字)时.

如果你想保存回溯,你必须自己做.