Всем привет. Сейчас прохожу курс Kotlin про корутины и есть пара непонятных моментов. Вот один из них:
Создаю scope и handler
val handler = CoroutineExceptionHandler { context, exception ->
log("$exception was handled in Coroutine_${context[CoroutineName]?.name}")
}
val scope = CoroutineScope(Job() + Dispatchers.Default + handler)
Потом через этот скоуп вызываю друг за другом 2 launch, в первом бросаю исключение, во втором ставлю delay 1 секунду
scope.launch(CoroutineName("1")) {
Integer.parseInt("a")
}
scope.launch(CoroutineName("2")) {
Thread.sleep(1000)
}
В итоге я ожидаю один вызов в handler из 1-й корутины, но на деле их два!
2020-07-08 19:31:51.840 java.lang.NumberFormatException: For input string: "a" was handled in Coroutine_1
2020-07-08 19:31:52.840 java.lang.NumberFormatException: For input string: "a" was handled in Coroutine_2
Подскажите, откуда NumberFormatException во 2-й корутине.