а если не найдено то, что должно там быть. Значит, неправильно посылаются запросы с фронта, значит, - нештатная ситуация. Я правильно мыслю?
на мой взгляд, неправильный запрос с фронта это типичная ситуация. Ты должен отдать правильный http код, и опционально тело.
Для сравнения - консольная программа, ты в неё даёшь неправильные входные параметры, она тебе нормально отвечает, что ты дурак, а не падает с исключением.
@ControllerAdvice
public class DefaultExceptionHandler {
@ExceptionHandler(PointNotFoundException.class)
public ResponseEntity<info.md7.routing_gh.exception.ErrorMessage> handlePointNotFoundException(PointNotFoundException ex) {
String errorMessage = ex.getMessage();
return new ResponseEntity<>(new info.md7.routing_gh.exception.ErrorMessage(200, errorMessage), HttpStatus.NOT_FOUND);
}
@ExceptionHandler(PointOutOfBoundsException.class)
public ResponseEntity<info.md7.routing_gh.exception.ErrorMessage> handlePointOutOfBoundsException(PointOutOfBoundsException ex) {
String errorMessage = ex.getMessage();
return new ResponseEntity<>(new info.md7.routing_gh.exception.ErrorMessage(201, errorMessage), HttpStatus.BAD_REQUEST);
}
@ExceptionHandler(PointDistanceExceededException.class)
public ResponseEntity<info.md7.routing_gh.exception.ErrorMessage> handlePointDistanceExceededException(PointDistanceExceededException ex) {
String errorMessage = ex.getMessage();
return new ResponseEntity<>(new info.md7.routing_gh.exception.ErrorMessage(202, errorMessage), HttpStatus.BAD_REQUEST);
}
}
Как Вы считаете, нужно ли создавать много кастомных эксепшенов
а остальные пускать через общий класс ApiException?
Вероятно, как клиент вы бы не хотели получить размытый ответ об ошибке аля "Error, please try agian", либо что еще хуже получить стек-трейс.
spring boot же не имеет встроенный томкат.
For servlet stack applications, the spring-boot-starter-web includes Tomcat by including spring-boot-starter-tomcat, but you can use spring-boot-starter-jetty or spring-boot-starter-undertow instead.
Например,