Проблема с попыткой поймать исключение SQLIntegrityConstraintViolationException

#java #html #spring

Вопрос:

Я создаю веб-сайт, и я хочу обработать ошибку с белой меткой. Когда появляется белая метка, я бы хотел, чтобы система была отправлена на новую страницу.

У меня возникли проблемы со следующим методом

 @PostMapping("/createRental")
public String createRental(@ModelAttribute Rental rental) throws Exception{
    try {
        rentalService.createRental(rental);
        return "home/rental/succesRental";
    } catch (SQLIntegrityConstraintViolationException e) {
        return "home/rental/noRental";
    }
}
 

На данный момент я получаю эту ошибку: исключение
SQLIntegrityConstraintViolationException «дом/аренда/успешная аренда»; работает, но «дом/аренда/Норенталь»; нет, и это страница, на которую я хотел бы быть отправлен, вместо ошибки с белой меткой. Какие-нибудь исправления?

Комментарии:

1. Ты ловишь MySQLIntegrityConstraintViolationException , но пиши, что получишь SQLIntegrityConstraintViolationException . Если это действительно так, вам нужно уловить более общее SQLIntegrityConstraintViolationException .

2. Я также пробовал исключение SQLIntegrityConstraintViolationException в catch, но это тоже не работает. ошибка гласит: Исключение «java.sql.SQLIntegrityConstraintViolationException» никогда не создается в соответствующем блоке try

3. Что значит createRental() бросать?

4. Я не совсем понимаю, что вы имеете в виду, так как я все еще новичок в кодировании. Чего я хочу добиться, так это чтобы система могла перейти в «home/rental/succesRental»; HTML-файл, который работает, и если появится белая метка, я хотел бы, чтобы на веб-странице был показан этот html-файл «home/rental/noRental».;

5. Что ж, если вы новичок в программировании, вы, возможно, захотите сначала хорошо разобраться в основах, которые будут включать в себя использование исключений. Предполагая, что ваше сопоставление возвращаемых значений работает, у вас, похоже, возникли проблемы с возвратом "home/rental/noRental" , потому что ваш код не вводит предложение catch, верно? В этом случае вам нужно будет проверить, какие проверенные исключения createRental() объявляются выбрасываемыми или какие исключения во время выполнения/непроверенные, которые он может выбросить, и которые вы хотели бы поймать.