Excepción y Herencia en Java
Supongamos que tenemos este problema
public class Father{
public void method1(){...}
}
public class Child1 extends Father{
public void method1() throws Exception{
super.method1();
...
}
}
Child1
se extiendeFather
y anulamethod1
pero dada la implementaciónChild1.method1
Ahora lanza una excepción. Esto no se compilará, ya que el método de anulación no puede generar nuevas excepciones.
¿Cuál es la mejor solución?
Propagar la excepción requerida a laFather
. Para mí esto es contra la encapsulación, la herencia y la POO general (laFather
potencialmente lanza una excepción que nunca sucederá).Utilizar unaRuntimeException
¿en lugar? Esta solución no propagará elException
alFather
, pero los documentos de Oracle y otras fuentes establecen que la clase de excepciones se debe usar cuando "El código del cliente no puede hacer nada". Este no es el caso, esta excepción será útil para recuperar blablabla (¿por qué es incorrecto usarRuntimeException
¿en lugar?).Otro..