class Exception2 extends Exception{}
public class Boo {
String one = "1";
public void Boo1() throws Exception2 {
System.out.println("Boo1");
if( one.equals(1)){
throw new Exception2();
}
}
}
public class Boo11 {
public static void main (String[] args) throws Exception2{
try{
Boo11 vi = new Boo11();
vi.Boo111();
}finally{
System.out.println("finally");
}
}
public void Boo111() throws Exception2{
Boo b = new Boo();
b.Boo1();
}
}
最后一段如果这里没有try/finally,而且本来他就没有try/catch,又声明了异常,那么就是duck掉了异常,但是现在这里虽然声明了异常,却有try/finally,还是duck吗?或者说,声明了异常没有try/catch也没有try/finally的与声明了异常有try/finally的同一段代码对于异常的处理一样吗?都是duck?也就是不处理?两者之间唯一的不同就是有try/finally的代码执行了finally吗?