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

Каким образом реализовать обработку исключений и ошибок в приложениях на базе Spring Framework?

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

sobes.tech AI

В Spring Framework обработка исключений реализуется с помощью нескольких подходов:

  1. @ExceptionHandler — аннотация для методов в контроллерах, которые обрабатывают конкретные исключения.
@Controller
public class MyController {
    @ExceptionHandler(MyException.class)
    public ResponseEntity<String> handleMyException(MyException ex) {
        return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(ex.getMessage());
    }
}
  1. @ControllerAdvice — класс, который глобально обрабатывает исключения для всех контроллеров.
@ControllerAdvice
public class GlobalExceptionHandler {
    @ExceptionHandler(Exception.class)
    public ResponseEntity<String> handleAllExceptions(Exception ex) {
        return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Ошибка сервера");
    }
}
  1. ResponseStatusException — можно выбрасывать исключения с определённым HTTP статусом.
throw new ResponseStatusException(HttpStatus.NOT_FOUND, "Ресурс не найден");
  1. Использование фильтров и интерсепторов для перехвата и обработки исключений на уровне HTTP-запросов.

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