KOTLIN_ADEPT Telegram 183
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 можно в этом докладе.

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



tgoop.com/kotlin_adept/183
Create:
Last Update:

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 можно в этом докладе.

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

BY Kotlin Adept Notes


Share with your friend now:
tgoop.com/kotlin_adept/183

View MORE
Open in Telegram


Telegram News

Date: |

As the broader market downturn continues, yelling online has become the crypto trader’s latest coping mechanism after the rise of Goblintown Ethereum NFTs at the end of May and beginning of June, where holders made incoherent groaning sounds and role-played as urine-loving goblin creatures in late-night Twitter Spaces. It’s easy to create a Telegram channel via desktop app or mobile app (for Android and iOS): Healing through screaming therapy How to create a business channel on Telegram? (Tutorial) How to create a business channel on Telegram? (Tutorial)
from us


Telegram Kotlin Adept Notes
FROM American