A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hdsjsql 中级黑马   /  2013-4-18 21:40  /  1424 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么接口不能抛出异常?

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

4 个回复

倒序浏览
本帖最后由 黑马-张明 于 2013-4-18 21:47 编辑

public interface xx{
   public void method1() throws 1Exception;
   public void method2() throws 2Exception;
   public void method3() throws 3Exception;
   public void method4() throws 4Exception;
}
这样是为了保证代码中如果出现异常,就可以在外围catch,并且强制性的让程序员在最外边catch异常。这样代码就更安全了。
如果你能肯定实现接口的类都不会抛异常的话,接口就不需要抛异常。一般情况下接口都是要抛异常的,因为接口是事先写好的,并不知道后面实现接口的类会不会抛异常,如果接口不抛异常,则实现接口的类有异常都没法抛。基于这一点,接口基本上都要跑异常 ,并且最好是抛Exception异常,Exception异常时所有异常的父类,所以实现接口的类无论抛什么异常都没有关系了。当然,如果你仅仅是在学习中写代码,而不是实际开发,也可以不抛。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
亲,接口里的方法只是都是抽象方法,没有方法体的,那又怎么能抛出异常呢

点评

鼓励鼓励,亲,可以看看API哦,其中的io包中的接口有的方法是需要抛异常的  发表于 2013-4-19 07:30

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
何锦权 发表于 2013-4-18 21:45
亲,接口里的方法只是都是抽象方法,没有方法体的,那又怎么能抛出异常呢 ...

啊?可以吧,接口中定义的异常实现类必须带着。。。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
如果问题未解决,请继续追问,如果问题解决了,请将问题分类改为“已解决”,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马