Excepção e Herança em Java

Suponha que tenhamos esse problema

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

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

}

Child1 estendeFather e substituimethod1 mas dada a implementaçãoChild1.method1 agora lança uma exceção. Isso não será compilado, pois o método de substituição não pode lançar novas exceções.

Qual é a melhor solução?

Propagar a exceção necessária para oFather. Para mim, isso é contra o encapsulamento, herança e OOP geral (oFather potencialmente lança uma exceção que nunca acontecerá).Use umRuntimeException em vez de? Esta solução não irá propagar oException aoFather, mas documentos do Oracle e outras fontes afirmam que a classe de exceções deve ser usada quando "Código do cliente não pode fazer nada". Este não é o caso, esta exceção será útil para recuperar blablabla (por que é errado usarRuntimeException em vez de?).De outros..