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

Utilizar Exception genérica para capturar qualquer Exception

Pessoal,

O Nico comentou sobre a utilização da Exception genérica para capturar qualquer Exception. Vi que isso talvez não seja uma boa prática. Isso é assim mesmo?

Outra questão: Se não é uma boa prática, como capturar uma Exception que eu não conheço e não sei se vai dar ou não? Teria que ver a documentação das classes que estou usando?

Obrigado pela ajuda!

Abraços!

2 respostas
solução!

Olá Renan , tudo bem ? Boa tarde rs ,

Renan , você já deve ter ouvido falar em exceções checkeds e uncheckeds , correto ?

Se eu não me enganar a RunTimeException é uma Exception , que por fim é unchecked , correto ?

E assim , todas as outras que forem subclasses de RuntimeException , assim como : NullPointerException , IndexOutOfBoundException e etc. Essas classes são tratadas pela jvm em tempo de execução , não precisa declarar try / catch.

E, por outro lado temos as checkeds , como : SQLException e etc. Na qual as exceções podem ser tratadas com try / catch.

Isso se tornaria má pratica ao meu ver, por conta do seguinte caso, pensa que você tem um SQLException, correto ?

Se você indicar uma Exception , que seria a classe mãe de todas as exceções , como Eu saberia qual Exceção foi tratada naquele momento ?

Para ser mais sensato, o correto é capturar a exceção exata( se ela for SQLException, a capture com SQLException ) , e não capturar com exceção genérica por exemplo Exception.

O correto seria ver a doc do java ou a própria IDE , supondo o , eclipse que te indicaria qual exceção utilizar , para tal situação.

Obrigado. :)

Olá, Diego, boa tarde.

Sim, concordo com sua resposta. Incluse algumas ferramentas de análise de qualidade de software, tipo Sonar, não permitem que se utilize uma Exception genérica.

Obrigado pela atenção.

Renan Moreira Santos.