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

Try/Catch polimórfico

Qual a vantagem de capturar Exceções especificas no Catch, se posso sempre utilizar o Exception?

3 respostas
solução!

Boa tarde, Kleber! Como vai?

A vantagem é vc poder dar tratamento específico para cada tipo de exceção que pode ocorrer no seu código, caso seja necessário!

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Oi Kleber! Tudo bem?

O que o Gabriel respondeu está correto, contudo gostaria de complementar.

Cada tipo de exceção permite você realizar uma ação de contorno de um erro. Se não existem diferenças de tratamentos para cada um dos catches, você pode sim, tratar tudo como exception.

É importante lembrar que, com o tempo programando em linguagens modernas, você vai perceber que a exception por si só é uma forma eficiente de identificar erros no seu sistema, algumas que exigirão que você realize uma ação - Checked Exception e outras não exigirão uma ação - Runtime Exception. Assim sendo, se você não tratar corretamente as exceções, você pode ocultar o erro real.

Recomendo que antes de tratar ou arremessar a exceção, gere um log do que aconteceu.

LOG.error(exceptionOriginal.getMessage(), exceptionOriginal);

Se for arremessar uma exceção, utilize o throws passando a exception Original

 throw new SuaCustomException("sua mensagem", exceptionOriginal);

No mais, funcionam como jargões na programação.

A aplicação está arremessando:

IOException = Problemas de leitura ou escrita de arquivos, streams de dados, etc.

ClassCastException = Você está tratando um polimorfismo de forma incorreta.

NullPointerException = Você está acessando uma referencia de um objeto não instanciado.

São tantas outras exceções que fica difícil descrever.

Espero ter ajudado,

Abraço e sucesso,

Rodrigo

Exceções específicas geralmente são criadas no negócio, e o tratamento é diferenciado. Tratar tudo como Exception é uma má prática, pois seu sistema não está funcionando por algum motivo e você nunca saberá qual.