Вступить в клуб →
средняявопросPython и асинхронность

Один из десяти запросов в asyncio.gather упал, и пропали результаты всех остальных

results = await asyncio.gather(
    *(fetch_partner_price(p) for p in partners)   # 10 партнёров
)

Один партнёр отвечает ошибкой. Задача — показать цены девяти остальных. Что происходит сейчас и как это исправить?

  • Первое исключение вылетает из await; нужен return_exceptions=True
  • gather вернёт девять результатов и None на месте упавшего
  • gather отменит все запросы и повторит их заново
  • Ошибка будет проигнорирована, пока не вызвать results.raise_errors()

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела