Weitere aktuelle Java-Titel finden Sie bei dpunkt.
 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index


5.10

Vererbung und throws


Beim Design einer Klasse ist zu beachten, dass es nicht erlaubt ist, einer Methode beim Überschreiben in einer Unterklasse eine throws-Klausel neu hinzuzufügen oder an eine bereits bestehende throws-Klausel weitere Exceptions anzuhängen.

Der Grund hierfür liegt wiederum in den Regeln der Zuweisungskompatibilität: Da an einen Verweis auf eine Klasse auch Exemplare aller Unterklassen zugewiesen werden können, darf es nicht sein, dass eine Methode in einer Unterklasse so redeklariert wird, dass sie eine neue Exception auslöst. Somit wären nämlich plötzlich an allen Stellen, an denen diese Methode aufgerufen wird, try/catch-Anweisungen oder entsprechende throws-Klauseln bei den Aufrufern erforderlich.

Insbesondere beim Entwurf von Klassenbibliotheken muss man sich also sorgfältig Gedanken machen, ob es möglich ist, dass ein Benutzer der Bibliothek beim Überschreiben einer Methode vor dem Problem steht, dass in seiner neuen Implementierung eine Exception auftritt, die an den Aufrufer weitergeleitet werden soll. Der »Brute force«-Ansatz, in jedem Methoden-Header die Klasse Exception anzuführen, ist sicherlich genauso wenig eine Lösung wie eine zu restriktive Handhabung der Exceptions. Eine Lösung ist das Umsetzen oder die Verkettung von Exceptions, auf die später eingegangen wird.

Das Weglassen eines Teils oder einer kompletten throws-Klausel beim Überschreiben einer Methode, um zu signalisieren, dass eine Exception nicht mehr ausgelöst wird, ist dagegen zulässig. Im Gegensatz zur implements-Klausel einer Klasse wird eine throws-Klausel einer Methode also nicht implizit vererbt.


 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index

Copyright © 2002 dpunkt.Verlag, Heidelberg. Alle Rechte vorbehalten.