Нужно ли всегда при использовании try-catch над coroutineScope отдельно обрабатывать CancellationException?

Не совсем понимаю: пусть есть такой код

suspend fun example() {
    try {
        coroutineScope {
            doWork()
        }
    } catch (e: Throwable) {
        //выполняем тут какую-нибудь логику
    }
}

suspend fun doWork() {
    throw Exception()
}

Должен ли я всегда добавлять отдельную catch-ветку для перепробрасывания CancellationException на случай, если моя функция example будет вызвана из другого скоупа и может быть отменена?

Если да, то, получается, нужно при каждом вызове лямбды coroutineScope, если он оборачивается в try-catch, отдельно обрабатывать ветку с CancellationException?


Ответы (0 шт):