Назад к вопросам
Junior — Middle
85
Каким образом реализовать обработку исключений и ошибок в приложениях на базе Spring Framework?
Ответ от нейросети
sobes.tech AI
В Spring Framework обработка исключений реализуется с помощью нескольких подходов:
- @ExceptionHandler — аннотация для методов в контроллерах, которые обрабатывают конкретные исключения.
@Controller
public class MyController {
@ExceptionHandler(MyException.class)
public ResponseEntity<String> handleMyException(MyException ex) {
return ResponseEntity.status(HttpStatus.BAD_REQUEST).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("Ошибка сервера");
}
}
- ResponseStatusException — можно выбрасывать исключения с определённым HTTP статусом.
throw new ResponseStatusException(HttpStatus.NOT_FOUND, "Ресурс не найден");
- Использование фильтров и интерсепторов для перехвата и обработки исключений на уровне HTTP-запросов.
Таким образом, Spring предоставляет гибкие механизмы для централизованной и локальной обработки ошибок, что позволяет возвращать клиенту понятные и корректные ответы при возникновении исключений.