Kotlin Adept Notes
2.02K subscribers
69 photos
11 videos
117 links
Канал о разработке на Kotlin и обо всем, что с ним связано
По всем вопросам и рекламе: @ajiekcx
Download Telegram
Kotlin Rich Errors

Вы, скорее всего, слышали про будущую фичу в Kotlin под названием Rich Errors, которая может кардинально изменить подход к обработке ошибок. Но многие не поняли: а в чём, собственно, отличия от sealed class или checked exceptions в Java?

Давайте разберёмся.

На мой взгляд, главная фича — это компактность и простота.

Например, если у нас есть такая функция:

fun fetchUser(): User | FetchingError

Тогда можем написать выражение:

fetchUser()?.charge(amount = 10.0)

И мы не получим nullable-результат, метод charge выполнится только если fetchUser вернул успешный результат. И не нужно запоминать всякие операторы по типу fold в Result и так далее.

В отличие от sealed-классов, в Rich Errors ошибка и успешный результат не имеют общего родителя. При этом error class не является наследником Any, а наследуется от специального типа Error.

Также многих может ввести в заблуждение синтаксис, ведь это очень похоже на union-типы в других языках, но это не они.

Мы не можем использовать любой тип в правой части. Разрешается использовать только Error-классы, при этом их может быть больше одного. А основной тип может быть только один.

Подробнее узнать про Rich Errors можно в этом докладе.

А вы ждёте эту фичу или считаете, что это бесполезный сахар?
👍15👾8🥱2