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: |

Matt Hussey, editorial director of NEAR Protocol (and former editor-in-chief of Decrypt) responded to the news of the Telegram group with “#meIRL.” To upload a logo, click the Menu icon and select “Manage Channel.” In a new window, hit the Camera icon. The Standard Channel Done! Now you’re the proud owner of a Telegram channel. The next step is to set up and customize your channel. It’s easy to create a Telegram channel via desktop app or mobile app (for Android and iOS):
from us


Telegram Kotlin Adept Notes
FROM American