Выбор ответа Middle Исключения в корутинах спрашивают часто обновлено

SupervisorJob и обычный Job

Вопрос

Чем SupervisorJob отличается от обычного Job?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Ошибка дочерней корутины не отменяет родителя и остальных детей. В обычном Job ошибка ребёнка отменяет родителя и всех братьев.

Варианты ответа

  1. Он автоматически перезапускает упавшие корутины
  2. Он перехватывает все исключения и не даёт приложению упасть
  3. Ошибка дочерней корутины не отменяет родителя и остальных детейправильный ответ
  4. Его нельзя отменить ни снаружи, ни изнутри

Разбор

В обычном Job ошибка ребёнка отменяет родителя и всех братьев. SupervisorJob разрывает это распространение вверх: упавший ребёнок завершается сам, остальные продолжают. Исключение при этом всё равно нужно обработать: в корневом launch оно уйдёт в CoroutineExceptionHandler или уронит приложение. Перезапуска нет, отменить SupervisorJob можно.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.