Мы не можем изменить исключение метода с предложением throws с SQLException на NumberFormatException при его переопределении, потому что NumberFormatException не является подтипом SQLException. Когда мы переопределяем метод в подклассе, мы можем добавить новые проверяемые исключения (т.е. те, которые наследуют класс Exception), но не можем уменьшить количество или изменить тип исключений, которые может выбросить метод в суперклассе. В данном случае, если метод в суперклассе имеет предложение throws SQLException, то метод в подклассе может объявлять только проверяемые исключения, которые являются подтипами SQLException. NumberFormatException не является подтипом SQLException, поэтому мы не можем использовать его в переопределенном методе в качестве нового исключения. Вот пример: class Parent {
public void method() throws SQLException {
// ... }
}
class Child extends Parent {
@Override public void method() throws NumberFormatException { // Ошибка компиляции!