Ругается обработчик ошибок, мол проблем с записью в БД быть не может

Совершенно непонятно. Код, который просто записывает поля в БД

 if (findTypeIncRequestByName == null) {
      try {
            typeIncomingRequestRepo.save(typeIncomingRequest);// Пытаюсь записать в БД
            return "Способ связи " + typeIncomingRequest.getName() + " успешно добавлен";
           } catch (SQLException e) {
             e.printStackTrace();
             return "Database error";
           }
        } else {
            return "Способ связи " + typeIncomingRequest.getName() + " уже существует";
        }

Среда разработки мне подчеркивает SQLException и пишет что такой быть не может

введите сюда описание изображения

"is never thrown in the corresponding try block"


Ответы (1 шт):

Автор решения: Roman C

Класс SQLException наследуется от java.lang.Exception, поэтому является проверяемым исключением. Если IJ показывает, что исключение не возникает в блоке try-catch, то, значит оно не возникает в блоке и во всех вызовах из блока, а также оно может быть перехвачено в вызываемом/ввполняемом коде.

Надо смотреть на метод save() и обрабатывать те исключения, которые у него записаны в определении throws.

Возможно у вас при вызове может возникать другое исключение, которое требуется отлавливать, к также если возникает не проверяемое исключение, то его можно отлавливать явно в блоке try-catch. В каких случаях нужно отлавливать такие исключения можно почитать здесь.

→ Ссылка