有人可以向我解释一下这里发生了什么吗?我想在超时错误中添加一条消息:
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
。