Sobes.tech
Back to questions
Junior — Middle
105

Какие средства ты используешь для управления исключениями в контроллерах Spring MVC?

Answer from AI

sobes.tech AI

В Spring MVC для управления исключениями в контроллерах обычно используют:

  • Аннотацию @ExceptionHandler внутри контроллера для обработки конкретных исключений.
  • Класс с аннотацией @ControllerAdvice для глобальной обработки исключений во всех контроллерах.

Пример использования @ExceptionHandler:

@Controller
public class MyController {

    @ExceptionHandler(ResourceNotFoundException.class)
    public ResponseEntity<String> handleNotFound(ResourceNotFoundException ex) {
        return ResponseEntity.status(HttpStatus.NOT_FOUND).body(ex.getMessage());
    }

    // методы контроллера
}

Пример глобальной обработки с @ControllerAdvice:

@ControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(Exception.class)
    public ResponseEntity<String> handleAllExceptions(Exception ex) {
        return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Произошла ошибка: " + ex.getMessage());
    }
}