jvmchat | Unsorted

Telegram-канал jvmchat - pro.jvm

5916

Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш канал: @proJVM Вакансии: @jvmjobs @jvmjobschat ⚠️ Оффтоп -> @flood ❌Переход на личности ❌Троллинг ❌Реклама ❌HH (вакансии) ❌Варез

Subscribe to a channel

pro.jvm

не, это котлиновский класс

Читать полностью…

pro.jvm

как и существование of/ofNullable

Читать полностью…

pro.jvm

да господи, остановись

Читать полностью…

pro.jvm

просто совсем без исключений хреново - концы не найдешь

Читать полностью…

pro.jvm

На самом деле норм тема, но требуется перестройка мозга на новую парадигму

Читать полностью…

pro.jvm

но совсем на тайпед эррорс не хочется переходить

Читать полностью…

pro.jvm

Optional - for handling nullable context
А другие типы есть для хендлинга другого контекста.
Mono, Flux, CompletableFuture, Deffered, (JavaScript's Promise) - for handling async context.
Result, Either - to handle success or failure contexts. Used to represent success or failure without using exceptions,
.....

Читать полностью…

pro.jvm

ребята из джава мирка, хоть иногда выбирайтесь наружу

Читать полностью…

pro.jvm

тогда проще прибегнуть к совету, который я давал человеку выше

Читать полностью…

pro.jvm

но чтобы его триггернуть, тогда надо делать типо:

return when (val result = userService.findUser(id)) {
is Result.Success -> result.value
is Result.Error -> throw DomainException(result.error)
}

Читать полностью…

pro.jvm

будто только кастомный класс с функцией, который принимает Result, а потом when

Читать полностью…

pro.jvm

ну то есть допустим я поглотил Resultом некий ResourceNotFoundException и хочу записать в логи стэктрейс и вернуть ошибку клиенту через @RestControllerAdvice

Читать полностью…

pro.jvm

То есть все бизнес исключения мы типизируем, а все, что не обрабатываем оставляем как непредвиденные исключения?

Читать полностью…

pro.jvm

Просто раз котлин используется, то лучше typed errors использовать для ошибок в бизнес-логике.
Кода получится столько же как на эксепшенах, но получаем явность в компайл тайме
https://arrow-kt.io/learn/typed-errors/working-with-typed-errors
А эксепшены оставляются на случай действительной беды как вот системная ошибка

Читать полностью…

pro.jvm

я боялся, что на такое там мне не ответят, так как это не гуглится очевидным образом, думал, здесь с таким сталкивались

Читать полностью…

pro.jvm

arrow , но можно обуреть если весь проект на нем

Читать полностью…

pro.jvm

потому что .get() npe кидает

Читать полностью…

pro.jvm

У них чёт похожее было

Читать полностью…

pro.jvm

Это уже а духе голанга

Читать полностью…

pro.jvm

норм Result<Throwable, T>

Читать полностью…

pro.jvm

я просто по диагонали глянул. очень похоже было.

Читать полностью…

pro.jvm

есть что-то помимо убого джавового Optional

Читать полностью…

pro.jvm

это они опшинал изобрели?

Читать полностью…

pro.jvm

В случае typed errors ошибки обрабатываются по-хорошему не в @RestControllerAdvice,
а в своем компоненте, который инжектишь в контроллеры.
Никакого стактрейса
И все

Читать полностью…

pro.jvm

в этом случае думаю стоит оставлять выкидывание эксепшенов и обработку в @RestControllerAdvice

Читать полностью…

pro.jvm

как это обычно делается?

Читать полностью…

pro.jvm

просто интересно, как это сказывается на логировании и сохранении стэктрэйса

Читать полностью…

pro.jvm

Не надо, очень не надо

Читать полностью…

pro.jvm

Да, дело не в гуглится, короче ладно. Разобрались и хватит

Читать полностью…

pro.jvm

Тогда после такого советую обращаться в джава.старт

Читать полностью…
Subscribe to a channel