python_asyncio_course/6_tasks/6_14_052_exceptions.py

33 lines
970 B
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():
tasks = asyncio.gather(
get_data(1),
get_data(2),
# Передаем имя несуществующего файла, чтобы вызвать ошибку
file_reader("fake.png"),
# Этот вызов тоже должен вызвать ошибку
get_data(0),
)
result = await tasks
print("Готово!!!", result)
asyncio.run(main())
# Решение через raise_excpetion см в след файле