Адекватно ли мое решение для контроллеров Spring в Котлине?JAVA

Программисты JAVA общаются здесь
Anonymous
Адекватно ли мое решение для контроллеров Spring в Котлине?

Сообщение Anonymous »

Мне очень нравится, что я могу видеть все варианты ответа в Java, вызванные языком, когда контроллеры написаны следующим образом:

Код: Выделить всё

@Post...
UpdatedItem updateItem(...) throws UserNotFoundException, ItemNotFoundException, ItemEditionNotAllowedEx... {
return itemService.updateItem()
}

...

@ExceptionHandler({ UserNotFoundException.class })
Но сейчас я использую Kotlin без вынужденных ошибок и пришёл к такому решению:

Код: Выделить всё

sealed class UpdateItemFail {
data object UserNotFound: UpdateItemFail()
data object ItemNotFound: UpdateItemFail()
data class ItemEditionNotAllowed(val reason): UpdateItemFail()
}

@Post...
fun updateItem() {
when(itemService.updateItem(...)) {
is Either.Ok -> ResponseEntity.ok(it.body)
is Either.Fail -> when(it.fail) {
UpdateItemFail.UserNotFount -> ResponseEntity...
UpdateItemFail.ItemNotFound -> ResponseEntity...
...
}
}
Таким образом, каждый запрос имеет свой собственный запечатанный класс ошибок.
Это плохо или злоупотребление? Если да, то какой тип обработки вы предложите?

Подробнее здесь: https://stackoverflow.com/questions/790 ... -in-kotlin

Вернуться в «JAVA»