Duvida try catch

3 respostas
C

Blz galera? to me preparando para a prova e me deparei com essa questão… não consegui entender o por que dá resposta…alguem pode ajudar?

Question 71
Given:

11.class A { 12. public void process() { System.out.print(?A,?); } } 13. class B extends A { 14. public void process() throws IOException { 15. super.process(); 16. System.out.print(?B,?); 17. throw new IOException(); 18. } } 19. public static void main(String[] args) { 20. try { new B().process(); } 21. catch (IOException e) { System.out.println(?Exception?); } }
What is the result?
A. Exception
B. A,B,Exception
C. Compilation fails because of an error in line 20.
D. Compilation fails because of an error in line 14.
E. A NullPointerException is thrown at runtime.
Answer: D

3 Respostas

eduardoac

É porque o método process() da classe filha B esta lançando uma exceção que não esta sendo lançado no process() da classe pai (A). Um método sobreposto da classe filha pode lançar apenas uma exceção menos genérica da exceção pai, como o pai não esta lançando nenhuma exceção, o método process() da classe B não pode fazer isso, resultando em erro de compilação.

T

v

C

caralh* né que nem tinha reparado nisso…poxa vida, ia perder uma questão tão fácil.

Valeu!

Criado 24 de agosto de 2008
Ultima resposta 24 de ago. de 2008
Respostas 3
Participantes 3