异常与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

回到顶部