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