am 3. Februar 2009
Mit PHP 5 wurden Exceptions eingeführt. Ein toller Tag für uns OOP Fans. Endlich kann man statt über einen “mixed” Rückgabewert einen aufgetretenen Fehler bekannt machen, die saubere Methode der Ausnahmen (exception) verwenden. Eine Ausnahme wird an einer Stelle geworfen, weitergereicht und an der Stelle bearbeitet, an der es Sinn macht.
Doch leider sieht man immer wieder leere try catch Blöcke. Wenn es einem egal ist, ob eine Methode aufgerufen wird und korrekt terminiert oder nicht, warum ruft man sie denn dann überhaupt auf. Das macht keinen Sinn. Dinge, die manchmal funktionieren, sind die Hölle in der Programmierung. Und wenn man dann nicht mal mitbekommt, dass ein problem aufgetreten ist, hat man doppelt verloren. Versucht mal einen Fehler zu finden, der durch einen leeren Catch Block abgefangen wurde.
Falls man also an eine solche Stelle kommt, sollte man sich über das Design Gedanken machen. In den meisten Fällen ist hier nämlich ein strukturelles Problem vorhanden, das man anders angehen sollte. Zum Glück hilft einem das Zend Studi an dieser Stelle bereits ein wenig. Hier werden Exception, die nicht in irgendeiner Art und Weise bearbeitet werden angemäkelt. Nettes Feature.
“Sinnvoll” stelle ich mir das nur im Umgang mit Third Party Code vor. Hier kann man oft nicht verhindern, dass “falsche” Exceptions geworfen werde. In einem solchen Fall kann man mit leben, nicht zu reagiere, wenn der Code trotzdem das tut, was er soll. Vielleicht kann man hier aber trotzdem die Exceptions loggen, um es sich einfacher zu machen. Zumindest sollte man die Stellen im Code markieren, in denen so etwas passiert.
Ach ja, der Umgang mit Ausnahmen gilt natürlich auch für Javascript.