EMZETT.
Login

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) oder RuntimeException (ungeprüft).
  • Erneut werfen: Im catch kann man mit throw e; weiterreichen oder die Ursache einpacken (new MyException("…", e)).
  • Python: raise ValueError("…"), mit raise allein im except wirft man erneut.

Siehe auch: try/catch/finally, IllegalArgumentException