public class A {
void doStuf(int number) throws Exception {
}
}
public class B extends A {
void doStuf(int number) throws Throwable {
}
public static void main(String a[]) throws Throwable {
new B().doStuf( 1 );
}
}
Select the best answer:
A - ) Class Code A does not compile
B - ) Class Code B does not compile
C - ) Class Code A and B does not compile
D - ) Class Code A and B will compile
E - ) Class Code A and B will compile, and run properly
A classe Trowable é a superclasse da Exception, desde modo só podemos subscrever um metodo que lance uma exception da mesma classe ou de uma subclasse da mesma. Coma a classe A o metodo doStuf lanca um exception da classe Exception, ele só pode ser subscrito por um metodo com a mesma assinatura e que lance uma exception da classe Excepion ou uma de subclasse da mesma.
Na verdade a classe B tem que conter todos os Exceptions da classe A OU MENOS!
exemplo:
import java.sql.*;
public class A {
void doStuf(int number) throws NumberFormatException, Throwable, SQLException
{
}
}
public class B extends A {
void doStuf(int number) throws Throwable {
}
public static void main(String a[]) throws Throwable {
new B().doStuf( 1 );
}
}