黑马程序员技术交流社区

标题: 为什么接口不能抛出异常 [打印本页]

作者: hdsjsql    时间: 2013-4-18 21:40
标题: 为什么接口不能抛出异常
为什么接口不能抛出异常?
作者: 黑马-张明    时间: 2013-4-18 21:44
本帖最后由 黑马-张明 于 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异常时所有异常的父类,所以实现接口的类无论抛什么异常都没有关系了。当然,如果你仅仅是在学习中写代码,而不是实际开发,也可以不抛。
作者: 何锦权    时间: 2013-4-18 21:45
亲,接口里的方法只是都是抽象方法,没有方法体的,那又怎么能抛出异常呢
作者: Miss小强    时间: 2013-4-18 22:05
何锦权 发表于 2013-4-18 21:45
亲,接口里的方法只是都是抽象方法,没有方法体的,那又怎么能抛出异常呢 ...

啊?可以吧,接口中定义的异常实现类必须带着。。。
作者: 黄玉昆    时间: 2013-4-20 14:46
如果问题未解决,请继续追问,如果问题解决了,请将问题分类改为“已解决”,谢谢




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