Sobes.tech
Назад к вопросам
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());
    }
}

Такой подход позволяет централизованно обрабатывать ошибки, возвращать понятные клиенту ответы и поддерживать чистоту контроллеров.