Stunde6-Sote.ink Throwable JVM Exception Error VirtualMachineError AssertionError OutOfMemoryError IOException RunTimeException FileNotFoundException ClassCastException NullpointerException 1 Stunde6-Sote.ink Merkregeln - Existierende Fehlerklassen nutzen (Java bringt über 200 verschiedene mit) - Niemals von Error erben - Fehler möglichst spezifisch fangen - Fehler möglichst nahe am Ort des Entstehens behandeln - niemals leeren catch-Block - auch in catch-Blöcken können Fehler auftreten 2 Stunde6-Sote.ink Logging Mit dem Logger lassen sich Meldungen von Anwendungen beispielsweise in eine Datei schreiben und stellt damit eine Alternative zu System.out.println dar. Anwendung Formatter "Außenwelt" z.B. Datei Handler Logger Filter Filter - Filehandler - ConsoleHandler - SocketHandler - StreamHandler - MemoryHandler 3 Stunde6-Sote.ink Logging (Bessere) Alternative zu System.out StreamHandler FileHandler SocketHandler DatabaseHandler ... - Durchgängige Formatierung - Durchsuchbarkeit/Auswertbarkeit - viele Ziele (Dateien, Socket, Datenbank usw.) - Zur Laufzeit an/ausschaltbar Formatter - Verschiedene Log-Levels XMLFormatter SimpleFormatter eigene Formatter (s. nächste Seite) 4 Stunde6-Sote.ink Eigener Formatter 5 Stunde6-Sote.ink Reflection und Introspection Mit Reflection können zur Laufzeit - Klassen instanziert werden - Methoden aufgerufen werden Mit Introspection können die Eigenschaften von Klassen ausgelesen werden - Methoden: Name, Modifier, ... - Attribute (getField()) - Annotations .... 6 Stunde6-Sote.ink Instanzieren Methoden ausgeben Methode aufrufen 7