Life · 11 / 12

Не проглоти отмену

Исправить Result-обёртку для suspend-вызова

Средняяcoroutinescancellationerrors

capture превращает обычное исключение операции в Result.failure. Исправь заготовку: внешняя отмена должна распространяться, фатальные ошибки уровня Error не должны маскироваться.

Зависимость: kotlinx-coroutines-core 1.11.0 (используются стабильные API).

Проверь мысленно или в своём Kotlin-проекте:

  • block вернул 7 → Result.success(7).
  • block бросил IllegalStateException → failure с тем же исключением.
  • block бросил CancellationException → исключение выходит из capture.
  • block бросил AssertionError → ошибка выходит наружу.

Обёртка не переносит работу на IO и не добавляет retry. Это узкий договор, а не универсальная классификация всех сетевых ошибок.

Основа: safe API call из draft/lifeconding.md и draft/M++.md.

Твой код
Решение