【问题标题】:Start pdb on exception in Tornado's ioloop在 Tornado 的 ioloop 异常时启动 pdb
【发布时间】:2013-12-18 14:21:16
【问题描述】:

在独立的 Python 程序中执行此操作通常很有用:

def excepthook(typ, value, tb):
    traceback.print_exception(typ, value, tb)
    pdb.pm()

...
if log.getEffectiveLevel() == logging.DEBUG:
    sys.excepthook = excepthook

(即如果发生未捕获的异常,程序将进入pdb 事后模式)

但这不适用于 Tornado ioloop bc 似乎 ioloop 捕获未捕获的异常并打印或记录它们。如果我安装上面的钩子,程序只有在按下 Ctrl-C 时才会进入事后模式,这有点晚了。 :-)

有没有办法在没有猴子修补 Tornado 的情况下实现这一点?

【问题讨论】:

    标签: python tornado pdb ipdb


    【解决方案1】:

    您可以继承 tornado 的 IOLoop 并覆盖 handle_callback_exception。见http://www.tornadoweb.org/en/stable/ioloop.html#tornado.ioloop.IOLoop.handle_callback_exception

    我想这与猴子修补没什么不同...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-17
      • 2018-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多