Что такое SupervisorScope

«Что такое SupervisorScope» — вопрос из категории Coroutines и Flow, который задают на 24% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

SupervisorScope — это CoroutineScope, который отличается от обычного тем, что дочерние корутины не отменяются при падении одной из них. Вместо этого ошибка обрабатывается индивидуально для каждой корутины.

Когда использовать:

  • Когда нужно запустить независимые задачи, где падение одной не должно влиять на другие.
  • Например, при параллельной загрузке нескольких изображений.

Пример:

supervisorScope {
    launch { 
        // Задача 1 
    }
    launch { 
        // Задача 2 (если упадёт, Задача 1 продолжит работу)
    }
}

⚠️ Ошибки внутри supervisorScope не отменяют родительскую корутину, но их нужно обрабатывать вручную через try/catch или CoroutineExceptionHandler.