Я использовал asyncio для проекта и столкнулся с этим странным поведением.
import asyncio
def schedule_something():
global f
tsk = asyncio.async(do_something())
f = tsk #If this line is commented out, exceptions can be heard.
@asyncio.coroutine
def do_something():
raise Exception()
loop = asyncio.get_event_loop()
loop.call_soon(schedule_something)
loop.run_forever()
loop.close()
По какой-то причине сохранение результирующей задачи при вызове asyncio.async()
не позволяет исключениям что-либо делать.
Может ли кто-нибудь пролить свет на эту ситуацию? Мне нужен способ перехватывать исключения в моем текущем проекте.