@@ -32,8 +32,10 @@
|
||||
- `RuntimeException`s müssen nicht gefangen oder deklariert werden.
|
||||
- Alle anderen Exceptions müssen deklariert *und* gefangen (oder wiederum deklariert) werden.
|
||||
- *Todo*: Müssen deklarierte Checked Exceptions geworfen werden? -> Nein
|
||||
- Dürfen nicht deklarierte CheckedExceptions gefangen werden? -> Nein (``Exception, RuntimeExcpetion, Throwable, Error`` schon). Compilezeit-Typ zählt.
|
||||
- `IOException` ist eine checked Exception
|
||||
- Überschriebene Methoden müssen Exceptions oder **Subklassen** deklarieren. (Dann bei super-Aufrufen die ursprüngliche Exception aber auch behandeln)
|
||||
- Überschriebene Methoden dürfen keine neuen CheckedExceptions deklarieren, von vorhandenen dürfen **Subklassen** deklariert werden. (Dann bei super-Aufrufen die ursprüngliche Exception aber auch behandeln). Nicht deklarierte Exceptions der Oberklasse sind auch nicht vorhanden, müssen nicht behandelt werden (deklarierter Typ zählt).
|
||||
-
|
||||
- **Konstruktoren und Vererbung**:
|
||||
- `super` erster Aufruf, auch nicht in try-Block einbettbar
|
||||
- Dadurch können Exceptions der Konstruktoren der Superklassen nicht gefangen und selbst deklariert werden
|
||||
|
||||
Reference in New Issue
Block a user