def handle_result(fut):
    if fut.exception():
        fut.result()

def schedule_something():
    global f
tsk = asyncio.async(do_something())
tsk.add_done_callback(handle_result)
f = tsk

@asyncio.coroutine
def do_something():
    raise Exception()
loop = asyncio.get_event_loop()
loop.call_soon(schedule_something)
loop.run_forever()
loop.close()
When asyncio task gets stored after creation, exceptions from task get muted