Hello,
Das überzeugt mich nicht. Silent Failures sind technische Schulden und verursachen reale Kosten. Die PHP Library ist historisch leider so gewachsen, aber das ist für mich noch kein Freifahrtsschein um den Fehler jetzt immer wieder neu zu begehen und de facto Geld zu verbrennen.
Leider sind "Fehler" und "kein Ergebnis" auch (noch) nicht konsequent polymorph unterscheidbar.
Sonst könnte man es zukünftig so ähnlich, wie in guten alten 3rd-G Hochsprachen machen. Die Exception aka Exit-Handler wird bei Fehler konsequent geschmissen, wenn man ihn nicht vor Funktionsnutzung auf händische Behandlung umstellt. Dann muss er aber auch vor der Benutzung der nächsten Funktion abgefragt werden, sonst schmeißt die die Exception/den Exit-Handler.
Man kann dieses Verhalten allerdings mühevoll nachbilden, indem man jeder Originalfunktion nochmal einen Wrapper verpasst. Habe ich mal exemplarisch versucht. Wie das in PHP-OOP ginge, überschaue ich jetzt leider nicht. Vermutlich etwas einfacher. Da werden die Exceptions ja ohnehin durchgereicht, oder?
Glück Auf
Tom mobil