java 在接口中抛异常有什么用?

这是哪个接口:
public interface SnatchResult <T>{
List <T>getMetaData() throws IOException;
long getTotalHits() throws IOException;
long getTimeCost() throws IOException;
}

这不是在接口中抛异常,而是在接口中定义异常,
现在使用spring时,我们往往用接口来定义对象,而通过注入的方式来获取对象,并处理。
在接口中定义异常,就是告诉调用者,必须在运行方法后处理异常。如果不定义的话。所有的异常必须由接口的实现类自己处理,这在很多时候并不合适。追问

运行方法后处理异常和实现类处理异常有什么不同

追答

没有任何不同。
主要问题是,如果不在接口中定义异常的抛出,那么实现类里就无法定义异常的抛出。所以必须先在接口中定义好。

追问

实现类也可以自己定义异常啊
protected long getTimeCost(String s) throws IOException{
return 0;
}
像这样

追答

呵呵,可是你的实现类是要实现接口的,如果接口中不定义异常,那么你在实现类中定义异常是会报错的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-08-13
异常可以捕获处理,也可以不处理但是必须要捕获,前者通过try catch 捕获处理;后者通过throws 扔个上层处理。
异常就是java编译器判断该程序代码有可能会出现错误,防止它无法通过java编译。所以异常的铺捕获处理或者抛出在java代码中是非常重要的
第2个回答  2014-08-13
在方法上抛出异常,在调用的地方就通过try catch就可以知道该段程序在运行中出了问题,可以很方便的给出提示或响应。比如告诉用户程序发生错误,稍后重试之类的友好提示,或者给开发人员定位错误的原因

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网