我们可以覆盖一个在子类中抛出未经检查的异常的超类方法吗?
不,你不能。
子类方法不能引发基超类方法的throws
子句未涵盖的任何已检查异常。
换句话说,仅当子类方法出现在超类方法的throws
子句中,或者它是该throws
子句中显示的异常的子类时,子类方法才能引发选中的异常。
这是有道理的,因为超类的用户只知道超类方法的协定,那么他们怎么知道他们必须捕获超类的throws
子句中未提到的其他异常呢?他们不能也不应该知道覆盖该方法的所有子类(其中一些可能尚未编写(。