diff --git a/Aufpassen%21.md b/Aufpassen%21.md index 9682b0c..319e705 100644 --- a/Aufpassen%21.md +++ b/Aufpassen%21.md @@ -35,7 +35,25 @@ - Dürfen nicht deklarierte CheckedExceptions gefangen werden? -> Nein (``Exception, RuntimeExcpetion, Throwable, Error`` schon). Compilezeit-Typ zählt. - `IOException` ist eine checked Exception - Ü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). - - + +``` +Object +| +| +Trowable +| +|------ Error +| | +| |------- ... +| +|------ Exception (Ab hier Checked außer Runtime) + | + |------- Runtime (inkl. Unterbaum nicht Checked) + | | + | |------ + |------ +``` + - **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