Вы можете использовать аннотацию @ExceptionHandler
для перехвата определенного исключения, для этого вы можете просто аннотировать метод внутри вашего контроллера с помощью @ExceptionHandler
и предоставить ему конкретное исключение, например:
@ExceptionHandler(DataIntegrityViolationException.class)
public void handleException(){
// do some thing here
}
Ограничением этого способа является то, что он будет обрабатывать только исключения, выданные @RequestMapping
, где объявлено @ExceptionHandler
. Чтобы избежать этого ограничения, вы можете использовать рекомендацию контроллера , которая позволяет вам использовать точно такие же методы обработки исключений, но применять их ко всему приложению, например, используя рекомендацию контроллера:
@ControllerAdvice
class GeneralExceptionHandler {
@ExceptionHandler(DataIntegrityViolationException.class)
public void handleException() {
// Do some thing here
}
}
подсказка: если вы хотите перехватить все отмеченные исключения, вы можете использовать @ExceptionHandler (Exception.class)