а зачем в таких случаях ошибка, поинт владимира в том, что нужно это обрабатывать и выдавать не как ошибку, а какой-то результат (также @noraltavir говорил не использовать ошибки для ожидаемого поведения, потому что они дорогие)
не, ну про ожидаемое поведение-ошибки я согласен, но это с самого начала надо закладывать
Да заведи себе свой аналог для runCatching и юзай его. В скалке где-то был перечень того, что логично ловить, исключи оттуда явно CancellationException и живи с ним спокойно.