throw und throws
Kurz: throw löst eine Ausnahme aus. throws steht in Java an einer Methode und kündigt an, welche geprüften Ausnahmen sie nach außen weitergeben kann.
Genauer: Wer throw new IllegalArgumentException("Alter < 0") schreibt, bricht die Methode an dieser Stelle ab. Der Aufrufer muss sie fangen oder selbst weiterreichen. In Python heißt es raise, in JavaScript ebenfalls throw, in C# throw.
Im Detail
void setAlter(int alter) throws IOException {
if (alter < 0) throw new IllegalArgumentException("Alter < 0");
...
}- throw: Anweisung, die ein Ausnahme-Objekt wirft.
- throws: Teil der Methodensignatur, nur bei geprüften Ausnahmen Pflicht.
- Eigene Ausnahmen: Man erbt von
Exception(geprüft) oderRuntimeException(ungeprüft). - Erneut werfen: Im catch kann man mit
throw e;weiterreichen oder die Ursache einpacken (new MyException("…", e)). - Python:
raise ValueError("…"), mitraiseallein im except wirft man erneut.
Siehe auch: try/catch/finally, IllegalArgumentException