Exceptions: Klassen-Hierarchie „unchecked“ schwere Fehler: „try not to catch“ java.lang.Throwable Basisklasse „checked“ „checked“ (declare & catch) Error VirtualMachineError Exception ... ... LinkageError IOException PrinterException RuntimeException „unchecked“ may catch ... NullPointerException EmptyStackException IndexOutOfBoundsException Werfen von Exceptions „checked“ Exceptions müssen deklariert werden public void work() throws MyException, Exception { ... throw new Exception(„foo“); ... MyException m = new MyException(); throw m; ... throw new Error(„not checked“); throw new RuntimeException(„bar“); ... „unchecked“ Exceptions } sind nicht notw. deklariert try-catch-finally try { work(); throw new Exception(„foo“); } catch (MyException m) { } catch (Exception e) { ... } catch (Throwable e) { } finally { ... } Formaler Parameter (ähnlich wie Methoden) Reihenfolge wichtig (Throwable fängt alles), mind. 1 Klausel Wird in jedem Fall ausgeführt, z.B. Schliessen von Verbindungen, DB, ... 1