Вопросы к Поиску с Алисой
Обработка исключений CancelledError в асинхронных задачах происходит следующим образом: встроенный в библиотеку asyncio цикл событий не прерывает работу корутин, а просит их остановиться самим, выдавая исключение CancelledError. dvmn.org
Это исключение можно перехватить и обработать, как обычное исключение. dvmn.org Если CancelledError не обработать в обёрнутой задачей корутине, то выполнение задачи будет отменено. habr.com Если же исключение обработать в корутине, то задача отменена не будет. habr.com
От появления CancelledError до фактического завершения работы корутины может пройти много времени, это остаётся на её усмотрение. dvmn.org Внешний код будет ждать, когда корутина закончит работу, и, чтобы он узнал об этом, в конце нужно отпустить перехваченный CancelledError. dvmn.org Event loop asyncio поймает это исключение и уведомит всех, кто ждал этого завершения. dvmn.org