Size: a a a

Java/Kotlin and more

2021 May 29

AL

Aleksander Lemyagov in Java/Kotlin and more
Изменить сообщение в переопределенных методах.
источник

AL

Aleksander Lemyagov in Java/Kotlin and more
Писать в лог ошибку, а на клинет отдавать что-то вроде Ошибки сервера
источник

B

Bromles in Java/Kotlin and more
так еще раз, у меня в самом хендлере такое и написано. Я говорю, что он заходит в хедлер, доходит до ретурна в нем, но не возвращает ResponceEntity, а спотыкатеся по пути, не может найти хендлер для выскочившего с чего-то исключения и перекидывает все на дефолтный ресолвер, который уже посылает респонс с лишней инфой
источник

B

Bromles in Java/Kotlin and more
проблема не в "что писать в хендлере?", а в "с какого лешего один хедлер принимается, но падает и не отрабатывает, а второго просто не видят"
источник

B

Bromles in Java/Kotlin and more
Кстати еще отвлеченный вопрос

Какой из двух подходов лучше:

1. В контроллере всегда возвращать ResponseEntity, а в сервисе в него совать либо статус ок и сам респонс, либо код ошибки и текст ошибки

2. В контроллере возвращать DTO, а в сервисе при ошибке выбрасывать ResponseStatusException с кодом и сообщением об ошибке?
источник

RS

Ruslan Stelmachenko in Java/Kotlin and more
потому что это не поддерживается. если в хендлере вылетит эксепшен, то повторно через цепочку эксепшен-хендлеров оно не пойдет. в эксепшен-хендлер заходит только один раз, когда эксепшен возник в обработчике запроса, но не в обработчике ошибки.
источник

B

Bromles in Java/Kotlin and more
ну вот хендлер
источник

B

Bromles in Java/Kotlin and more
источник

B

Bromles in Java/Kotlin and more
а вот что случается, если дать кривой жсон в запросе
источник

B

Bromles in Java/Kotlin and more
источник

B

Bromles in Java/Kotlin and more
то есть хендлер не отрабатывает
источник

B

Bromles in Java/Kotlin and more
но при этом в сам хендлер он входит, я проверял
источник

B

Bromles in Java/Kotlin and more
источник

B

Bromles in Java/Kotlin and more
а в консоли вот такое при этом
источник

RS

Ruslan Stelmachenko in Java/Kotlin and more
Ну так значит хендлер отрабатывает же, раз в него заходит. просто падает, т.к. не может вернуть Acceptable representation (судя по логу). Может, в заголовках запроса присутствует хидер`Accept:`с каким-то таким форматом, в который ResponseEntity превратиться не может.
источник

B

Bromles in Java/Kotlin and more
в запросе Accept */*
источник

B

Bromles in Java/Kotlin and more
докопался до проблемы. У меня класс ExceptionResponse с полями HttpStatus и String. И я его засовывал в тело ResponseEntity внутри хендлера. И все падало, потому что спринг не может подобрать ресолвер для HttpStatus
источник

B

Bromles in Java/Kotlin and more
Все, победил
источник

OM

Oleg Marchenko in Java/Kotlin and more
И первый и второй подход имеет право на жизнь, но в сервисе лучше оперировать бизнес ошибками.
Далее на уровне перехватчика ошибок рулить с ответом для клиента.
источник

G

Guest in Java/Kotlin and more
Добрый день, подскажите пожалуйста, есть ли в java класс для передачи координат (широта долгота)
источник