异常谜题
1.返回值是什么
public static boolean f() { try{ return false; }finally { return true; } }
答案:true
2.是否能编译通过
try{ System.out.println("Hello World"); }catch(IOException e){ //code }
答案:不能编译通过,IOException是checkedException,而try块中不能抛出相应的异常,Exception或者Throwable确是可以编译通过的
3.能否编译通过
public class TaskTimeoutDemo implements type3{ @Override public void f(){ } } interface type1{ public void f() throws IOException; } interface type2{ public void f() throws ClassCastException; } interface type3 extends type1,type2{ public void f(); }
答案:可以编译通过,type3中的f()函数只能抛出父类接口对应方法抛出的异常的交集,这里就是空集