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). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |