Junior — Middle
79
Spring-те қателерді өңдеуді қалай жүзеге асырып, дұрыс жауаптарды қайтаруға болады?
Сұралған компаниялар
ООО СКВАД
AI-дан жауап
sobes.tech AI
В Spring для обработки пользовательских ошибок и возврата корректных ответов вместо исключений обычно используют механизм глобальных обработчиков исключений с помощью аннотации @ControllerAdvice и методов с @ExceptionHandler.
Это позволяет перехватывать исключения, возникающие в контроллерах, и формировать собственные объекты ответа с нужным HTTP-статусом и телом.
Пример:
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(CustomNotFoundException.class)
public ResponseEntity<String> handleNotFound(CustomNotFoundException ex) {
return new ResponseEntity<>("Ресурс не найден: " + ex.getMessage(), HttpStatus.NOT_FOUND);
}
@ExceptionHandler(Exception.class)
public ResponseEntity<String> handleGeneric(Exception ex) {
return new ResponseEntity<>("Произошла ошибка: " + ex.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
}
}
Таким образом, вместо того чтобы исключение приводило к стандартной ошибке сервера, приложение возвращает понятный и контролируемый ответ клиенту.