Назад к вопросам
ОТП Банк
Junior — Middle
81
Каким образом реализовать обработку исключений в приложениях, использующих Spring Framework?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В Spring Framework обработка исключений обычно реализуется с помощью аннотации @ExceptionHandler в контроллерах или глобально через @ControllerAdvice.
Пример локальной обработки в контроллере:
@RestController
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.badRequest().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());
}
}
Такой подход позволяет централизованно обрабатывать ошибки, возвращать понятные клиенту ответы и поддерживать чистоту контроллеров.