Warum ist eine Methode auf eine Methode Teil ihrer Signatur. Es scheint seltsam, es einzubeziehen. Hier ist ein Beispiel, wo es im Weg ist.Warum ist Würfe Teil der Methodensignatur
Wenn jemand diese Methode von außen sieht, könnte es versuchen, es zu verwenden, ohne zu wissen, dass es nicht unterstützt wird. Sie würden es nur lernen, wenn sie versuchten, den Code auszuführen.
Wenn sie jedoch so etwas tun könnten, würden sie wissen, dass die Methode nicht unterstützt wird und wenn UnsupportedOperationException RuntimeException nicht verlängert, erhalten sie einen Kompilierungsfehler. EDIT1: Aber das ist nicht möglich, weil Würfe Teil der Signatur ist, so Override wird nicht funktionieren.
@Overide
public void foo() throws UnsupportedOperationException {
throw new UnsupportedOperationException();
}
Diese Frage betrifft Javas Design, damit ich weiß, dass es schwierig sein könnte, ohne eine der Leute zu beantworten, die daran arbeiten Tropfen durch und beantworten, aber ich hatte gehofft, dass vielleicht diese Frage an sie aufgefordert wurde, bevor oder dass es einen offensichtlichen Grund dafür gibt, warum es so erklärt werden kann.
Sie scheinen Ihre eigene Frage hier zu beantworten? Es liegt an der Signatur, denn jetzt wissen Sie (und der Compiler), dass der Code die Ausnahme auslöst und dass sie behandelt werden muss. – Erik
Ungeprüfte Ausnahmen und die Bedingungen, zu denen sie ausgelöst werden, sollten in Javadoc dokumentiert werden. Dieses Paradigma wird in eingebauten Java-Bibliotheken verwendet und wird von mehreren Büchern vorgeschlagen, z. Effektives Java, um eines zu benennen. Die Deklaration in der Signatur wird, wie Sie richtig angemerkt haben, vom Compiler nicht benötigt. – Danstahr
Was Sie in Frage stellen, ist, ob eine ungeprüfte Ausnahme ausgelöst wird oder nicht. Für Starts verwenden Sie die Methode '@ Override', die angibt, dass sie dem Vertrag (Abstrakt oder Schnittstelle) folgen soll, aber für nicht markierte Ausnahmen sind Sie dazu nicht verpflichtet. Ob du dich entscheidest, es zu werfen oder nicht, folge immer der guten Praxis, wie @danstahr erwähnt, füge es auf dem Javadoc hinzu. –