尝试/除非不捕获未来的超时错误



有人可以向我解释一下这里发生了什么吗?我想在超时错误中添加一条消息:

future = asyncio.run_coroutine_threadsafe(do_stuff(), loop=loop)
try:
    return future.result(timeout=3)
except TimeoutError:
    raise TimeoutError("Time out occurred while doing stuff")

future.results() (concurrent.futures._base.py( 看起来像这样:

def result(self, timeout=None):
    # bla bla bla
    else:
        raise TimeoutError()

但是,当超时发生时,我的 try/except 子句没有捕获超时。事实上

future = asyncio.run_coroutine_threadsafe(do_stuff(), loop=loop)
try:
    return future.result(timeout=3)
except Exception as e:
    log.error(str(e))

显示空e。咦?

好的,我知道。我应该使用except asyncio.TimeoutError:,而不是基本TimeoutError

相关内容

  • 没有找到相关文章

最新更新