Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] ExceptionHandler e Exceptions

Na aula vimos o uso de ExceptionHandler mas gostaria de entender melhor qual seria a principal diferença ou vantagem de usar o ExceptionHandler nos métodos ao invés de usar Exceptions.

1 resposta
solução!

Olá, Camila. Tudo bem?

A diferença principal entre usar ExceptionHandler e tratar exceções diretamente com try-catch nos métodos está na centralização e reutilização do tratamento de erros.

Quando você usa try-catch diretamente nos métodos, você está lidando com as exceções de forma local, ou seja, cada método precisa ter seu próprio bloco de tratamento de erro. Isso pode levar a uma duplicação de código, especialmente se você tiver várias partes do seu aplicativo que podem lançar o mesmo tipo de exceção.

Por outro lado, o uso de @ExceptionHandler em uma classe anotada com @RestControllerAdvice permite que você centralize o tratamento de exceções. Isso significa que você pode definir em um único lugar como lidar com uma exceção específica, e essa lógica será aplicada automaticamente em todos os lugares do seu aplicativo onde essa exceção for lançada. Isso não só reduz a duplicação de código, mas também torna o código mais limpo e fácil de manter.

Por exemplo, no seu caso, ao usar @ExceptionHandler(EntityNotFoundException.class) na classe TratadorDeErros, você está dizendo ao Spring para capturar essa exceção em qualquer lugar do seu projeto e aplicar o tratamento definido no método tratarErro404(), que retorna um ResponseEntity com status 404 Not Found. Isso é particularmente útil para exceções que podem ocorrer em várias partes do aplicativo, como a EntityNotFoundException.

Espero ter ajudado e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!