5.9 | Die throws-Klausel |
Mit der throws-Klausel signalisiert eine Methode explizit, dass sie eine Exception nicht lokal abfängt, sondern die Fehlerbehandlung dem Aufrufer überlässt. Die throws-Klausel wird folgendermaßen verwendet:FileInputStream stream; public void openFile(String name) throws FileNotFoundException { stream = new FileInputStream(name); }throws wird sehr häufig im Zusammenhang mit Dateioperationen benötigt, da alle Dateioperationen eine IOException auslösen können. Jede Methode, die beispielsweise mit einer read-Methode etwas aus einem Stream lesen will, muss stets throws benutzen oder selbst auf die IOException reagieren. Dies mag anfangs mühselig erscheinen, jedoch ist dies ein vergleichsweise einfaches Verfahren, das gleichzeitig alle möglichen Fehler bei Ein- und Ausgabeoperationen abdeckt.
In der throws-Klausel können auch mehrere Exceptions durch Kommas getrennt angegeben werden, wenn es in der Methode zu verschiedenen Exceptions kommen kann. Falls es hierbei Exceptions gibt, die eine gemeinsame Oberklasse besitzen, genügt es, diese Oberklasse zu spezifizieren. (Wobei die Semantik in diesem Fall eine etwas andere ist: Nun können sowohl Exemplare der Oberklasse als auch aller Unterklassen ausgelöst werden.) Es ist aber zulässig, auch die Unterklassen explizit anzugeben.