← Questões de Programação

Programação · IF Sul Rio-Grandense · 2021

Questão comentada de Programação

Na hierarquia de exceções em Java, é correto afirmar que

Gabarito: A

Em Java, a hierarquia de exceções começa na classe Throwable, que se divide em dois ramos principais: Exception e Error. Dentro de Exception, existe um grupo muito importante chamado RuntimeException, que representa as chamadas exceções não verificadas (unchecked), aquelas que o compilador não obriga voce a tratar com try-catch ou a declarar em throws. É por isso que a alternativa A está correta: RuntimeException realmente é subclasse de Exception. Já os Errors representam problemas mais graves da máquina virtual, como falhas internas, e não herdam de Exception. Em geral, eles não são tratados como exceções comuns no código de aplicação. Então, se voce imaginar a árvore, Exception e Error são “irmãs” na base de Throwable, e não uma dentro da outra. Outro ponto clássico de prova: NullPointerException e IndexOutOfBoundsException são sim válidas na hierarquia de exceções Java, só que também são unchecked, pois derivam de RuntimeException. Elas podem aparecer em tempo de execução e normalmente não precisam de declaração obrigatória. A banca gosta de confundir isso com “não valem para tratamento”, mas valem, sim. Por fim, Exception não é subclasse de IOException. É o contrário: IOException é subclasse de Exception. Em resumo, a questão testa a árvore de herança e a diferença entre checked e unchecked, um detalhe básico de Java que costuma cair bastante.

Continue treinando

Questões relacionadas