![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 06.04.2018
Сообщений: 1
|
![]()
Доброго времени суток. Пишу приложение Spring Boot/ Sprind Data Jpa. Возникла проблема во время того как пытался обработать собственный экзепшн.
Если вызываю метод getOne(id) из репозитория(наследуюсь от JpaRepository) и пытаюсь обработать его своим экзепшном: @Override public Users getOne(Integer id) { Users user = repository.getOne(id); if (user == null) { throw new CustomException(); } return repository.getOne(id); } Данный код не срабатывает если я передаю ему не существующий в бд id и мой CustomException не пробрасывается, тк судя по всему спринг обрабатывает его раньше меня: Could not write JSON: Unable to find application.model.Users with id 3; nested exception is com.fasterxml.jackson.databind.Json MappingException: Unable to find application.model.Users with id 3 (through reference chain: application.model.Users_$$_jvst260_ 0["name"]) 2018-04-06 17:17:21.759 WARN 31468 --- [nio-7373-exec-1] .m.m.a.ExceptionHandlerExceptionRes olver : Resolved exception caused by Handler execution: org.springframework.http.converter. HttpMessageNotWritableException: Could not write JSON: Unable to find application.model.Users with id 3; nested exception is com.fasterxml.jackson.databind.Json MappingException: Unable to find application.model.Users with id 3 (through reference chain: application.model.Users_$$_jvst260_ 0["name"]) (С try/catch тоже самое) Решил это двумя способами: 1. С помощью ExceptionHandler и ControllerAdvice, передавая в хэндлер HttpMessageNotWritableException 2. Использовал Optional: @Override public Optional<Users> getOne(Integer id) { Optional<Users> user = repository.findById(id); if (!user.isPresent()) { throw new CustomException(); } return user; } Но хотелось бы услышать другие мнения, так как ни тот ни тот вариант не совсем точно решают проблему. Заранее спасибо. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перевести проект на Spring Boot | Abrikoss | Java для Web (EE, Servlet, JSP, Tomcat, Spring MVC) | 0 | 20.03.2018 00:11 |
Нужна помощь!(Java, SpringMVC, Spring Data...) | boomfuksicc | Фриланс | 1 | 22.06.2017 22:51 |
Обработка исключений с пoмощью структурированной обработки исключений | Smart | Visual C++ | 3 | 01.11.2012 15:38 |
надпись Reboot and select proper boot device or insert boot media in selected boot device and press a key что значит | Fat0307 | Операционные системы общие вопросы | 3 | 11.02.2012 22:48 |
Reboot and Select proper Boot device or Insert Boot Media in selected Boot device and press a key | Walkman97 | Операционные системы общие вопросы | 4 | 04.06.2011 22:27 |