Mailinglisten-Archive |
Dr. Volker Goebbels wrote: > Hallo Dennis, > >> arbeitest Du mit PHP4 oder mit PHP5? >> Bei PHP5 ist es für mich klar: per Exception. > > Exceptions sind ein Paradigma, über das sich vortrefflich > streiten^h^h^h^h^hdiskutieren läßt. Nicht über Sinn oder Unsinn > allgemein, der Sinn steht außer Frage. Nur für die Anwendungsbereiche. > > Exceptions sind eine elegante Art, echte Fehler abzufangen. > Rückgabewerte würde ich nicht out of band zurück geben. > > Dafür gibt es mehrere Gründe: > - Exceptions sind Objekte, die Fehlerfälle modellieren. Wenn man > Rückgabewerte damit abbildet heißt das, daß man die gesamte > Anwendungsdomäne, die man ja schon (hoffentlich) mit Objekten > modelliert hat, für die False-Fälle noch einmal nachmodelliert. > Sprich, man baut 2 separate aber analoge Objektbäume. Das > kann einen erheblichen Aufwand bedeuten. > - Out of band heißt ja, daß sie am Execution Stack quasi vorbei > schießen, bis sie gecatcht werden. Das kann eine recht > komplexe Fehlerquelle sein. Und: "Any not catched exception > should be considered as a bug" > > Also für ein "Ihr Username oder Paßword war leider falsch" würde ich > keinesfalls eine Exception verwenden. Für ein "Die Datenbank mit den > Logindaten ist nicht erreichbar" dagegen schon. Aber das ist zum Teil > Geschmackssache ;) genau! da ein falscher Benutzername oder Passwort eindeutig keine 'Ausnahme' ist gehört da auch kein 'Exception' hin! 'Ausnahmen' sollten der allerletzte Weg sein _Programm_-Fehler abzufangen! (wobei 'Falscher Login' ja noch nicht mal ein Programm-Fehler ist) Auch ein nicht erreichen der DB ist kein Programm-Fehler, er wird erst einer wenn der Programmierer schlampt. -- Sebastian Mendel www.sebastianmendel.de www.sf.net/projects/phpdatetime | www.sf.net/projects/phptimesheet
php::bar PHP Wiki - Listenarchive