Sobes.tech
Junior — Middle

Можете ли да обясните за какво се използва анотацията @ExceptionHandler в Java Spring?

sobes.tech AI

Отговор от AI

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

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

@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 и съобщение за грешка.