А на все "не получилось оформить заказ" ты пользаку пишешь"чет не то, попробуйте позже"
Читать полностью…Да, но A это завернет в ошибки B, а B в ошибки C и так далее. И на уровне A тебе надо знать только об ошибках B, а не о непонятных RuntimeException хз откуда
Читать полностью…не, я ж говорю, там про композицию
я про случай когда есть A.foo(), B.bar(), C.do()
foo() вызывает bar(), а тот вызывает do()
есть контроллер, который вызывает A.foo() - Either с ошибкой будет прокидываться из C.do() в контроллер по цепочке в го стиле?)
а еще жук для котлин умеет генерить data классы с правильной nullability и тогда без проблем работает .fetch(mapper())
При обычных exception у тебя контроллер может получить ошибку репозитория что бд не доступна и должен на это что-то пользователю сказать. Тут он получит абстрактное "не удалось оформить заказ" от сервиса заказов
Читать полностью…Если я правильно понял вопрос.
fun foo(n: Int): Either<Error, String> = either {
val s = f(n).bind()
val t = g(s).bind()
t.summarize()
}
это нечто левое к вопросу. беглый взгляд показал что там идет комбинирование результатов
Читать полностью…https://arrow-kt.io/learn/typed-errors/from-either-to-raise/
Это похоже на ерор пропагейшн как в расте.
Чтоб небыло боилерплейта.
Это шаг дальше от Either к боилерплейт фри ерор пропагейшн как в расте через "?".
Я в проде не пробовал