Boa tarde,
Fiz o tratamento 404 com RestControllerAdvice como explicado com o Erro 500, porém não realiza o tratamento, via debug vi que o método é chamado, porém estoura o erro 500 para o usuário. Segue abaixo os códigos.
ErrorNotFoundHandler.java
@RestControllerAdvice public class ErrorNotFoundHandler { @Autowired private MessageSource messageSource;
@ExceptionHandler(EntityNotFoundException.class)
@ResponseStatus(code = HttpStatus.NOT_FOUND)
public ExcecaoDTO handle(EntityNotFoundException exception) {
String mensagem = messageSource.getMessage(exception.getMessage(), null, LocaleContextHolder.getLocale());
return new ExcecaoDTO(mensagem, exception.getClass().getName());
}
}
TopicosController.java
@GetMapping(value = "/{id}") public ResponseEntity detalhar(@PathVariable(required = true ) Long id) {
Topico topico = topicoRepository.getReferenceById(id);
return ResponseEntity.ok().body(new DetalhesTopicoDto(topico));
}
Erro
"timestamp": "2022-07-08T17:22:11.570+00:00", "status": 500, "error": "Internal Server Error", "trace": "javax.persistence.EntityNotFoundException: Unable to find br.com.alura.forum.modelo.Topico with id 10\r\n\tat