• Как правильнее обработать кастомное исключение в Spring MVC?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый вечер.
    1) Прежде всего - вместо скриншотов добавляйте сниппеты кода. Если например, придется вносить правки в ваш код, то что прикажете делать? Не перепечатывать же его со скрина.
    2) Проверку на дубликаты и др. логику лучше перекинуть на сервисный слой.
    Например, некий CategoryService, где обрабатывается бизнес логика, а затем в сервисном слое вызываются методы CategoryDao
    3)
    Насколько ок завязываться на логике выброшеного исключения?

    Выбрасывайте свое кастомное исключение в сервисном слое. Например, DuplicateRecordExistsException, RecordExistsException или что-то типа такого.
    Далее ловите данное исключение на уровне контроллера или controllerAdvice. А затем уже на основе выбрасываемого исключения отдавайте на клиент сообщение с http статусом. Например,
    наличие дубликата это ошибка на клиенте. Соответсвенно, код ошибки 4xx (например, 400). Сообщение ошибки - Запись существует.
    Прочитайте вот это - https://spring.io/blog/2013/11/01/exception-handli...
    Обратите внимание на
    @ExceptionHandler
    а также вот, эту главу - Global Exception Handling Using @ControllerAdvice Classes
    Ответ написан
    Комментировать