Sneaky Throws – Exceptions aus dem Hinterhalt

Die Einführung der Generics in Java 8 hat zur einigen eigentümlichen Konsequenzen geführt. Die meisten dieser Konsequenzen fußen auf dem Konzept der Type Erasure. Die Generics sind nur Bestandteil der Java Sprache und werden demzufolge nur vom Java Compiler beachtet. Der compilierte Code kennt, salopp gesprochen, keine generische Typen sondern operiert auf dem vermuteten Basistypen der Generics.

FreshMarker Fehlerbehandlung

Fehlerbehandlung ist ein zentrales Thema bei einer Template-Engine. Fehlerhafte Eingabedaten und Syntaxfehler im Template sollten schnell erkannt werden, damit der Entwickler nicht lange Zeit mit der Fehlersuche beschäftigt ist. Bei der Verwendung von FreshMarker treten Fehler in drei Phasen der Verwendung auf. Bei der Konfiguration der Template-Engine, dem Parsen der Template Vorlagen und beim Prozessieren des Templates.

Das vergessene Erbe

Dieses Beitrag handelt nicht von dem bekannten Code Smell Refused Bequest (dem ausgeschlagenen Erbe), sondern von den vielen Featuren bekannter und unbekannter Bibliotheken, die in Vergessenheit geraten. Bei manchen dieser Bibliotheken wird man irgendwann auf die unangenehme Art auf die vergessenen Möglichkeiten hingewiesen. So wie jüngst die Bibliothek Log4j2 mit den Security Vulnerabilities CVE-2021-44228, CVE-2021-45046 und CVE-2021-45105.

Fehlerbehandlung aus der Hölle

Die Fehlerbehandlung in der Programmiersprache Java folgt einigen einfachen aber mächtigen Mustern. Dennoch zeigt sich immer wieder die Tendenz, auf erschreckende Weise davon abzuweichen.