python_asyncio_course/6_tasks/6_14_054_exceptions.py

35 lines
1.1 KiB
Python

import asyncio
async def file_reader(filename: str) -> str:
"""Корутина для чтения файла"""
with open(filename) as f:
data: str = f.read()
return data
async def get_data(data: int) -> dict:
"""Корутина, для возврата переданного числа в виде словаря вида {'data': data}"""
if data == 0:
raise Exception("Нет данных...")
return {"data": data}
async def main():
try:
async with asyncio.TaskGroup() as tg:
task1 = tg.create_task(get_data(1))
task2 = tg.create_task(get_data(2))
task3 = tg.create_task(file_reader("fake.png"))
task4 = tg.create_task(get_data(0))
result = [task1.result(), task2.result(), task3.result(), task4.result()]
print("Готово!!!", result)
except* FileNotFoundError as err:
for error in err.exceptions:
print(error)
except* Exception as err:
for error in err.exceptions:
print(error)
asyncio.run(main())