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

java – 异常不与throws子句兼容的原因是什么?

发布时间:2020-12-15 07:37:49 所属栏目:Java 来源:网络整理
导读:任何人都可以告诉我异常可能有什么原因,而不是与“throws”条款兼容 例如: class Sub extends Super{ @Override void foo() throws Exception{ }}class Super{ void foo() throws IOException{ }} 异常异常与Super.foo()中的throws子句不兼容 解决方法 如果
任何人都可以告诉我异常可能有什么原因,而不是与“throws”条款兼容

例如:

class Sub extends Super{

    @Override
    void foo() throws Exception{

    }

}

class Super{

    void foo() throws IOException{

    }
}

异常异常与Super.foo()中的throws子句不兼容

解决方法

如果没有完整的代码示例,我只能猜测:您在子类中重写/实现了一个方法,但是子类方法的异常规范与超类/接口方法的异常规范不兼容(即不是其子集)?

如果声明基本方法根本不抛出异常,或者例如,java.io.IOException(这是你的方法试图抛出的java.lang.Exception的子类).基类/接口的客户端期望其实例遵守基本方法声明的契约,因此从该方法的实现中抛出异常会破坏契约(和LSP).

(编辑:李大同)

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

    推荐文章
      热点阅读