Допустим, у меня есть какой-то прослушиватель событий, который должен работать все время, и есть некоторые exceptions
, которые я хочу передать их вызывающей функции что-то вроде этого
import asyncio
_ = 0
async def listener(loop):
while True:
await asyncio.sleep(0.5)
if _ != 0:
raise ValueError('the _ is not 0 anymore!')
print('okay')
async def executor(loop):
while True:
x = await loop.run_in_executor(None, input, 'execute: ')
global _
_ = x
async def main(loop):
asyncio.ensure_future(listener(loop), loop=loop)
await executor(loop)
loop = asyncio.get_event_loop()
loop.run_until_complete(main(loop))
, если вы собираетесь изменитьзначение, которое будет тормозить цикл события слушателя, но Я не хочу, чтобы оно break
Я хочу, чтобы оно raise
сообщало об ошибке, так что вы сможете его перехватить, а loop
продолжать идти * 1010.*