Description
Professor @acenelio , na aula 341 (Udemy) commit: " Obtendo um usuário por id " você passou o seguinte código para o tratamento do erro 500 quando usado um id inexistente:
@ExceptionHandler(ObjectNotFoundException.class)
public ResponseEntity objectNotFound( ObjectNotFoundException e, HttpServletRequest request) {
HttpStatus status = HttpStatus.NOT_FOUND;
StandardError err = new StandardError(System.currentTimeMillis(), status.value(), "Não encontrado", e.getMessage(), request.getRequestURI());
return ResponseEntity.status(status).body(err);
}
Porem mesmo usando-o eu continuava obtendo o mesmo erro 500 toda vez. então olhando no StackTrace percebi que a excepção que estaba lançando era ObjectCollectedException, assim que mudei no código deu certo.
@ExceptionHandler(ObjectCollectedException.class)
public ResponseEntity objectNotFound( ObjectCollectedException e, HttpServletRequest request) {
HttpStatus status = HttpStatus.NOT_FOUND;
StandardError err = new StandardError(System.currentTimeMillis(), status.value(), "Não encontrado", e.getMessage(), request.getRequestURI());
return ResponseEntity.status(status).body(err);
}
OBS: Estou usando IntelliJ IDEA 2024.3.2.2 (Community Edition) + SpringBoot 3.4.2 (stable) + MongoDB Atlas + MongoDB Compass
Por favor se for pertinente considere atualizar mais uma vez o código no curso.