Back to questions
Junior — Middle
67
Можете объяснить, что такое исключение CancellationException и в каких ситуациях оно используется?
Companies where asked
ВанТу Ворк
Answer from AI
sobes.tech AI
CancellationException — это специальное исключение в Kotlin Coroutines, которое сигнализирует о том, что корутина была отменена. Оно используется для управления отменой асинхронных задач и обычно не считается ошибкой, а нормальным способом прервать выполнение.
Когда вызывается метод отмены корутины (cancel()), внутри неё выбрасывается CancellationException, что позволяет остановить выполнение и освободить ресурсы. Обработка этого исключения позволяет корректно завершать задачи и избегать утечек.
Пример использования:
val job = CoroutineScope(Dispatchers.Default).launch {
try {
// Долгая операция
delay(10000)
} catch (e: CancellationException) {
println("Корутина была отменена")
throw e // важно пробросить исключение дальше
}
}
// Отмена корутины
job.cancel()
Таким образом, CancellationException — это механизм, который помогает управлять жизненным циклом корутин и корректно реагировать на их отмену.