Назад к вопросам
Junior — Middle
69
Можете объяснить назначение и работу ExceptionHandler при использовании корутин в Kotlin?
Компании, где спрашивали
IBS
Ответ от нейросети
sobes.tech AI
В Kotlin для корутин существует специальный механизм обработки исключений — CoroutineExceptionHandler. Его задача — перехватывать необработанные исключения, которые возникают в корутинах, и выполнять заданный код обработки (например, логирование или показ сообщения пользователю).
CoroutineExceptionHandler — это элемент контекста корутины, который можно добавить при её запуске. Он срабатывает только для исключений, которые не были пойманы внутри самой корутины (например, в блоках try-catch).
Пример использования:
val handler = CoroutineExceptionHandler { _, exception ->
println("Поймано исключение: ${exception.localizedMessage}")
}
GlobalScope.launch(handler) {
throw RuntimeException("Ошибка в корутине")
}
Здесь, если в корутине произойдет исключение, оно будет перехвачено и обработано в handler. Это особенно полезно для централизованной обработки ошибок в асинхронном коде.