Назад к вопросам
Junior — Middle
70
Что такое CancelationException и в каких случаях она возникает?
Компании, где спрашивали
Movavi
Ответ от нейросети
sobes.tech AI
CancellationException — это исключение в Android (и Java), которое возникает, когда операция или задача была отменена до её завершения. Обычно оно используется в асинхронных операциях, например, при работе с корутинами или задачами, которые можно отменить.
В Kotlin Coroutines, если корутина отменяется, то внутри неё может быть выброшено CancellationException, чтобы прервать выполнение и освободить ресурсы. Это нормальное поведение, и такое исключение не считается ошибкой, а сигналом об отмене.
Пример:
val job = CoroutineScope(Dispatchers.Default).launch {
try {
// Долгая операция
delay(10000)
} catch (e: CancellationException) {
println("Корутина была отменена")
throw e // важно пробросить исключение дальше
}
}
job.cancel() // отменяем корутину
Таким образом, CancellationException возникает при отмене асинхронных операций и служит для корректного завершения таких задач.