为了账号安全,请及时绑定邮箱和手机立即绑定

在龙卷风中,如何查看在PeriodicCallback调用的协程中引发的异常?

在龙卷风中,如何查看在PeriodicCallback调用的协程中引发的异常?

摇曳的蔷薇 2021-03-18 18:58:59
我编写了一个程序,该程序具有一个从主程序定期调用的协程,ioloop如下所示:from tornado import ioloop, web, gen, logtornado.log.enable_pretty_printing()import logging; logging.basicConfig()@gen.coroutinedef callback():    print 'get ready for an error...'    raise Exception()    result = yield gen.Task(my_async_func)l = ioloop.IOLoop.instance()cb = ioloop.PeriodicCallback(callback, 1000, io_loop=l)cb.startl.start()我得到的输出很简单:$ python2 app.pyget ready for an error...get ready for an error...get ready for an error...get ready for an error...将raise Exception()被自动忽略!如果我将回调更改为def callback():    print 'get ready for an error...'    raise Exception()我得到了我期望(和需要)的完整堆栈跟踪。使用协程时如何获取堆栈跟踪?
查看完整描述

2 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

我不完全清楚为什么,但是更改@gen.coroutine@gen.engine允许异常正确冒泡。它仍然仍然异步工作。


查看完整回答
反对 回复 2021-03-26
  • 2 回答
  • 0 关注
  • 288 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号