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. :)