Исключение и наследование в Java
Предположим, у нас есть эта проблема
public class Father{
public void method1(){...}
}
public class Child1 extends Father{
public void method1() throws Exception{
super.method1();
...
}
}
Child1
продолжаетсяFather
и переопределяетmethod1
но учитывая реализациюChild1.method1
теперь выбрасывает исключение. Это не скомпилируется, так как переопределяющий метод не может генерировать новые исключения.
Какое лучшее решение?
Распространить требуемое исключение наFather
, Для меня это против инкапсуляции, наследования и общего ООП (Father
потенциально выдает исключение, которое никогда не произойдет).ИспользоватьRuntimeException
вместо? Это решение не будет распространятьException
кFather
, но документы Oracle и другие источники утверждают, что класс исключений следует использовать, когда «код клиента ничего не может сделать». Это не тот случай, это исключение будет полезно для восстановления блаблабла (почему это неправильно использоватьRuntimeException
вместо?).Другие..