黑马程序员技术交流社区

标题: 实现runnable 覆写run方法时为什么不能直接throws [打印本页]

作者: liuch111    时间: 2015-7-13 10:05
标题: 实现runnable 覆写run方法时为什么不能直接throws
  老毕的视频中说  接口中只能用try能不能抛,,why!
作者: liuch111    时间: 2015-7-13 10:07
public class DeadLock {
        public static void main(String[] args) {
                Object g =new Object();
                Object m =new Object();
                //访问同一个货物资源
                new Goods(m,g).start();
        }
}
class Goods extends Thread{
        private Object goods =new Object();
        private Object money =new Object();
       
        public Goods(){
               
        }
        public Goods(Object goods,Object money){
                super();
                this.goods =goods;
                this.money =money;
        }
        public void run()                 // 这里为什么不能直接throws呢???
                  {
                synchronized (goods) {
                        try {
                                Thread.sleep(200);
                        } catch (InterruptedException e) {
                                e.printStackTrace();
                        }
                }
        }

}
class Mondy extends Thread{
       
}
作者: 825176857    时间: 2015-7-13 10:29
自己加个抛就知道了,好像运行时在main里还要抛,自己加一下
作者: 耀阳圣尊    时间: 2015-7-13 10:52
因为Runnable是接口。你要是抛的话谁来解决呢?而且Runnable没有提供异常的解决方式。所以说只能try。具体的话,你可以看一下Runnable的源码。
作者: 帅帅loyal    时间: 2015-7-13 11:12
圣尊说的很对,听圣尊的,




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2