加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Declare-and-throw与throw-without-is-declared异常

发布时间:2020-12-14 06:02:05 所属栏目:Java 来源:网络整理
导读:在 Java中,双重方法有什么区别? public void methodA() throws AnException { //do something throw new AnException();}public void methodA() { //do the same thing throw new AnException();} 我有一个直觉,它与一个精心设计的方法有关(因为我将methodA
在 Java中,双重方法有什么区别?
public void methodA() throws AnException {
    //do something
    throw new AnException();
}

public void methodA() {
    //do the same thing
    throw new AnException();
}

我有一个直觉,它与一个精心设计的方法有关(因为我将methodA放在一个接口中,它被声明为methodA *在实现中的方式,并从Java接收到一个警告,“A *不能覆盖A,因为A *不抛出异常“).

这个猜测是否正确?

两种做事方式有其他微妙的内涵吗?

解决方法

如果AnException是被检查的异常(换句话说,如果它不扩展RuntimeException),那么methodA将不会被编译.检查的异常必须始终被拒绝.

如果AnException是一个未经检查的异常(如果扩展了RuntimeException),那么可以由java编译器允许,也可以由java运行时等效地解释.在这种情况下,方法A仍然可能仍然是首选,因为文档的原因.您的方法的javadoc将显示它可能会抛出AnException.让你的方法的用户知道他们应该期望的异常是很好的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读