способ?
Почему по умолчанию падают все сразу, и только при использовании SupervisorJob этого не происходит?
Ощущение, что у тех, кто только знакомится с корутинами постоянно возникает сложность в этом месте.
Так ещё и, вроде бы, имеется какая-то ерунда с отменой корутин через CancellationException.
Этому всему есть разумное объяснение или "просто так получилось"?
Представь, что ты делаешь 5 параллельных запросов, чтобы нарисовать экран. Один из запросов вернул 403, из-за чего экрана не получится. Логично отменить остальные и показать ошибку?
По дефолту ошибки не должны игнориться, вот и всё. Предполагается, что обычно дочерние корутины нужны для выполнения основной операции, и они должны падать с грохотом, а не по-тихому.
Интересно. Особенно на фоне отсутствия checked exceptions. 😀
Checked exceptions - это про корректность кода на стадии компиляции. А это - реализация fail fast в рантайме. Если что-то пошло не так и не обработанно - роняем всё.
Обсуждают сегодня