Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Retornando erros das Exceptions

Estou forçando erros na aplicação e para cada erro existe uma Exception diferente enquanto que na reposta da API está sendo retornado status 403 Forbbiden para todos esses erros. A única forma de retornar um status e uma mensagem diferentes é tratando cada Exception de forma isolada na classe TratadorDeErros? Ou existe uma forma de colocar uma método geral para caputurar todas as excpetions (ou pelo menos as que não possui tratamento individual) e retornar uma mensagem de erro para o usuário?

4 respostas
solução!

Olá Jonas, tudo bem?

Para retornar um status e mensagem de erro diferentes para cada tipo de exceção, é necessário tratar cada exceção individualmente na classe TratadorDeErros. Dessa forma, é possível personalizar a mensagem de erro de acordo com o tipo de exceção lançada.

No entanto, é possível criar um método geral para capturar todas as exceções não tratadas individualmente e retornar uma mensagem de erro genérica para o usuário. Você pode utilizar o @ControllerAdvice para criar uma classe que irá interceptar as exceções lançadas e tratar de forma genérica.

Segue um exemplo de como seria a implementação:

@ControllerAdvice
public class TratadorDeErros {

    @ExceptionHandler(Exception.class)
    @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
    @ResponseBody
    public ErroDTO handleException(Exception ex) {
        ErroDTO erro = new ErroDTO();
        erro.setMensagem("Ocorreu um erro interno no servidor.");
        return erro;
    }
}

Nesse exemplo, a classe TratadorDeErros intercepta todas as exceções que não foram tratadas individualmente e retorna uma mensagem de erro genérica para o usuário. Você pode personalizar a mensagem de erro de acordo com a sua necessidade.

Espero ter ajudado e bons estudos!

Dá uma olhadinha também nesse Para Saber Mais: https://cursos.alura.com.br/course/spring-boot-aplique-boas-praticas-proteja-api-rest/task/125341

Obrigado Otávio e Rodrigo!

Por nada Jonas, precisando de ajuda estamos aqui, bons estudos!