Entendendo a função do @ControllerAdvice

Falando sobre o @ControllerAdvice, eu entendo que Controller é lugar de lógica enxuta, evito o try/catch nas chamadas dos endpoints o máximo que posso, e para fazer acontecer, utilizo dos recursos que o Spring me entrega. 

Aplicado no tratamento de erros globais no Spring, ele detém controle total sobre o corpo da resposta e o código de status, ou seja, podemos ter uma maneira centralizada de lidar com exceções em todos os controllers implementados na aplicação.

Dentre alguns benefícios dessa implementação, o que mais me motiva é dar mais clareza nas respostas de erro, pois junto com o @ExceptionHandler conseguimos dar um tratamento por classe ou método, personalizando então o corpo da sua resposta. Veja abaixo uma implementação de exemplo:

O @ControllerAdvice me permite fazer tratamento de exceções por meio da interceptação da exceção na camada, some isso a implementações personalizadas de erros, e você terá NÃO um 500 (famoso quinhentão), mas sim um 400 todo bonito e elegante na sua aplicação.

Resumindo, pensa no ControllerAdvice como uma forma de permitir que você use exatamente as mesmas técnicas de tratamento de exceção aplicada em todo o projeto, e não apenas em um controller individual. 😉

Um Grande Abraço!

Leave a Reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *