本帖最后由 e.c 于 2014-2-4 14:31 编辑
可以抛,但要注意一种情况:如果子类是覆盖父类的方法或实现父类方法时,父类的方法没有抛异常则子类也不能抛。
如下:Runnable接口中的run()方法没有声明抛异常,则子类T实现run()方法时也不能抛异常。myRun()则可以抛异常。
class T implements Runnable {
public void run() { //Runnable中的public abstract void run();没有声明抛异常。则这里实现父类的run方法也不能抛
System.out.println("start sleep...");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("end sleep.s");
}
public void myRun() throws InterruptedException{ //这里可以抛
System.out.println("start sleep...");
Thread.sleep(1000);
System.out.println("end sleep.s");
}
} |