PHP und Exceptions

In einer Xing-Gruppe kam die Frage auf, ob man Exceptions unter PHP nutzen sollte und das man häufig gar kein Exceptionhandling fände und auch keine try-catch-Blöcke im Code wären…

Das älterer Code häufig keine Exceptions und entsprechend try-catch-Blöcke verwendet, liegt ja häufig daran, dass OOP im Bereich PHP erst seit relativ kurzer Zeit wirklich praktikabel ist. Da auch viele Funktionen von PHP selbst keine Exceptions werfen, sondern mit Rückgabewerten arbeiten, hat sich das auch dadurch nicht so verbreitet, wie es meiner Meinung nach sein sollte. PHP wird – aus meiner Sicht nicht zu Unrecht – dafür bemängelt, dass es nicht durchgehend Exceptions für seine Funktionen einsetzt (sondern mal Rückgabewerte, mal Errors, mal Exceptions), daher sollte man dort, wo es die Möglichkeit gibt, diese auch nutzen.

In der Diskussion wurde angemerkt, dass man eine Fehlerbehandlung lieber anders abwickeln solle. Im Sinne von CleanCode sollte man die Verwendung von Rückgabewerten mit gemischten Typen eigentlich vermeiden. Eine Methode – aber auch eine Funktion sollte nur Rückgabewerte eines Typs erzeugen! (Wer sich damit schon einmal herumgeschlagen hat, weiss was ich meine!) An dieser Stelle könnte man natürlich auch Result-Objekte erzeugen, was – kontextabhängig – sicherlich eine elegante Lösung sein kann, meist aber die Komplexität zu stark erhöht.
Ich stimme allerdings zu, dass es keinen Sinn macht, in bestehenden Code – bzw. in dafür entwickelten Plugins, etc. – mit „Gewalt“ ein Exceptionhandling zu integrieren, wenn dies nicht bereits vorgesehen ist, dann erzeugt man eher mehr Probleme, als dass man diese damit vermeidet.

Schreibe einen Kommentar