异常与throws子句不兼容的原因是什么?
谁能告诉我异常产生的原因有哪些,与“ throws”子句不兼容
例如:
class Sub extends Super{ @Override
void foo() throws Exception{
}
}
class Super{
void foo() throws IOException{
}
}
回答:
没有完整的代码示例,我只能猜测:您正在重写/实现子类中的方法,但是子类方法的异常规范与父类/接口方法的异常规范不兼容(即,不是其子集)?
如果声明基本方法根本不抛出异常,或者例如java.io.IOException
(这是java.lang.Exception
您的方法的子类正在尝试在此处抛出),则可能发生这种情况。基类/接口的客户端希望其实例遵守由base方法声明的协定,因此Exception
从该方法的实现中抛出将破坏协定(和LSP)。
以上是 异常与throws子句不兼容的原因是什么? 的全部内容, 来源链接: utcz.com/qa/405770.html