У меня есть следующий код.При этом fn2
фактически выдает исключение, и оно попадает в саму функцию.В функции fn1
компилятор жалуется на необработанное исключение, поскольку объявлено, что fn2
вызывает исключение.
Почему это так?Поскольку исключение зафиксировано внутри fn2
, не должно жаловаться, верно?
Пожалуйста, объясните поведение.
public class ExepTest {
/**
* @param args
*/
public static void main(String[] args) {
ExepTest exT = new ExepTest();
exT.fn1();
}
public void fn1(){
fn2();//compilation error
}
public void fn2() throws Exception{
try{
throw new Exception();
}
catch(Exception ex){
System.out.println("Exception caught");
}
}
}