Sobes.tech
Назад к вопросам
Junior — Middle
63

Можете объяснить, для чего используется аннотация @ExceptionHandler в Java Spring?

Компании, где спрашивали
SimbirsoftSimbirsoft

Ответ от нейросети

sobes.tech AI

Аннотация @ExceptionHandler в Java Spring используется для обработки исключений, которые возникают в контроллерах. Она позволяет определить метод, который будет вызван при возникновении определённого типа исключения, что помогает централизованно обрабатывать ошибки и возвращать понятные ответы клиенту.

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

@Controller
public class MyController {

    @GetMapping("/example")
    public String example() {
        if (true) {
            throw new IllegalArgumentException("Некорректный аргумент");
        }
        return "ok";
    }

    @ExceptionHandler(IllegalArgumentException.class)
    public ResponseEntity<String> handleIllegalArgument(IllegalArgumentException ex) {
        return ResponseEntity
                .status(HttpStatus.BAD_REQUEST)
                .body("Ошибка: " + ex.getMessage());
    }
}

В этом примере, если в методе example выбрасывается IllegalArgumentException, то метод с аннотацией @ExceptionHandler перехватит это исключение и вернёт клиенту ответ с кодом 400 и сообщением об ошибке.