Почему в Kotlin нет checked exceptions в отличие от Java?

Kotlin не требует объявлять или перехватывать исключения в сигнатуре: все исключения unchecked. Это упрощает композицию API, но переносит ответственность за ошибки в контракт и обработку.

Короткий ответ

Что ответить на собеседовании

Kotlin не требует объявлять или перехватывать исключения в сигнатуре: все исключения unchecked. Это упрощает композицию API, но переносит ответственность за ошибки в контракт и обработку.

Подробный разбор

Ответ с пояснениями

Kotlin не требует объявлять или перехватывать исключения в сигнатуре: все исключения unchecked. Это упрощает композицию API, но переносит ответственность за ошибки в контракт и обработку.

Checked exceptions в Java дают компиляторную дисциплину, но могут разрастаться по цепочке вызовов и приводить к механическим catch/rethrow. Kotlin выбрал иной компромисс: try/catch остаётся, но не навязывается каждому вызывающему коду. Для ожидаемых доменных исходов можно использовать явные result/sealed-типы. При взаимодействии с Java и другими платформами применяется @Throws, однако она не превращает Kotlin в язык с обязательной проверкой исключений.

Источник: kotlinlang.org.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее