有人可以向我解释这里发生了什么吗? 我想在超时错误中添加一条消息:
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
。 WTH?
答案 0 :(得分:2)
行。我知道。我应该使用except asyncio.TimeoutError:
,而不是TimeoutError
。