Ausnahme und Vererbung in Java
Angenommen, wir haben dieses Problem
public class Father{
public void method1(){...}
}
public class Child1 extends Father{
public void method1() throws Exception{
super.method1();
...
}
}
Child1
erweitertFather
und überschreibtmethod1
aber die Umsetzung gegebenChild1.method1
Jetzt wirft eine Ausnahme. Dies wird nicht kompiliert, da die überschreibende Methode keine neuen Ausnahmen auslösen kann.
Was ist die beste Lösung?
Übertragen Sie die erforderliche Ausnahme an dieFather
. Für mich ist dies gegen Einkapselung, Vererbung und allgemeine OOP (theFather
Löst möglicherweise eine Ausnahme aus, die niemals auftreten wird.Verwenden einRuntimeException
stattdessen? Diese Lösung wird das nicht verbreitenException
zumFather
In Oracle-Dokumenten und anderen Quellen wird jedoch angegeben, dass Ausnahmeklassen verwendet werden sollten, wenn "Client-Code nichts kann". Ist dies nicht der Fall, wird diese Ausnahme nützlich sein, um blablabla wiederherzustellen (warum ist es falsch zu verwenden?)RuntimeException
stattdessen?).Andere..