Wyjątek i dziedziczenie w Javie

Załóżmy, że mamy ten problem

public class Father{
    public void method1(){...}
}

public class Child1 extends Father{
    public void method1() throws Exception{
    super.method1();
    ... 
    }

}

Child1 rozciąga sięFather i nadpisujemethod1 ale biorąc pod uwagę wdrożenieChild1.method1 teraz zgłasza wyjątek. To się nie skompiluje, ponieważ nadrzędna metoda nie może rzucać nowych wyjątków.

Jakie jest najlepsze rozwiązanie?

Propaguj wymagany wyjątek doFather. Dla mnie jest to przeciwko enkapsulacji, dziedziczeniu i ogólnemu OOP (Father potencjalnie rzuca wyjątek, który nigdy się nie wydarzy).UżyćRuntimeException zamiast? To rozwiązanie nie będzie propagowaćException doFather, ale Oracle docs i inne źródła podają, że klasy wyjątków powinny być używane, gdy „Kod klienta nie może nic zrobić”. Nie jest to przypadek, ten wyjątek będzie przydatny do odzyskania blablabla (dlaczego jest niewłaściwy w użyciuRuntimeException zamiast?).Inny..

questionAnswers(5)

yourAnswerToTheQuestion