-
Olá pessoal!
Alguém poderia me explicar melhor essa questão? Eu teria marcado letra B, contudo a resposta correta é letra D. Eu fiquei na dúvida quanto a D, pois pelo o que eu saiba, eu não preciso extender exceções não verificadas, por exemplo. Qual o motivo de a letra B estar errada?
Obrigado
-
Na questão pede a alternativa incorreta e no Java não é necessário herdar da classe da Classe exception, pois na alternativa b (correta) vemos que as classes já herdam de forma encapsulada, não sendo necessário inserir o comando extends.A não ser que você queira criar uma exceção personalizada (o que não é obrigatório).
Ex:
http://www.guj.com.br/java/72649-exceptions---criando-novas-exceptions
Portanto a incorreta é a letra d)
Espero ter esclarecido.
-
Segue uma imagem que vai deixar essa questão mais clara.
-
Eu acredito que as letras "c" e "d" estão incorretas.
"Todas as classes de exceção do Java herdam direta ou indiretamente da classe Exception."
Na verdade, acho que elas herdam de java.lang.Throwable e o "Todas" ficou forte já que a classe Error não herda de Exception. Quem fez essa questão pegou os trechos de uma aula (slides) da usp.
http://www.usp.br/thienne/coo/material/aula3-tratamentoexcecoes-cont.pdf
E a letra d, ele usou o trecho que tem nessa aula e modificou o "podem" por "devem"
"Os programadores podem estender essa
hierarquia para criar suas próprias classes de
exceção"
-
Em relação a letra C, está correta. De acordo com o livro da Sierra (SCJP), pg 211, todas as classes de exceções são subtipos da classe exception. Os erros tecnicamente não são exceções porque não derivam da classe Exception.
-
"Os programadores devem estender a hierarquia de exceções do Java em suas próprias classes de execução."
Também podem estender Throwable. Por isso que está errada?
-
d)
Os programadores DEVEM estender a hierarquia de exceções do Java em suas próprias classes de execução. ERRADO
Os programadores PODEM estender a hierarquia de exceções do Java em suas próprias classes de execução. CORRETO