Mailinglisten-Archive |
Hallo Hannes, Am Montag, 23. Oktober 2006 12:41 schrieb Hannes H.: > Nennt mich Wahnsinnig, aber ich möchte beim Rewrite meines Projektes > das Errorhandling (vorallem das eigener Klassen) komplett auf > Exceptions aufhängen. Hat schon mal jemand gute Erfahrungen mit > selbst gebauten Exceptions gemacht? was ist daran wahnsinnig? :-) Wenn man es vernünftig macht, ist das sehr hilfreich, weil die Ausnahmebehandlung zentral verwaltet wird und durch Erweiterungen Fehler genau hierarchisch spezifiziert werden können. Seit ich PHP5 installiert habe, arbeite ich mit den Exceptions. Das funktioniert sehr schön. :-) > Meine eigentliche Frage ist allerdings: Wenn ich in einer Klasse > MyClass die Methode fooBar() implemientiere, und in dieser Methode > eine Exception mit throw werfe. Kann ich diese Außerhalb dann > Abfangen? Eigentlich ja, oder? Sonst hätten Exceptions meiner Meinung > nach null Sinn. Als kleines Beispiel: > > <?php > > $blubb = new MyClass(); > try > { > $blubb->fooBar(); > } > catch(MyOwnException e) > { > /* */ > } > ?> > > Funktioniert das so? Deine Frage verwirrt mich etwas, vor allem im Zusammenhang mit dem Code. :-) Die Ausnahme wird dort behandelt, wo sie auftritt. try und catch stellen ja einen gemeinsamen Block dar. Es bleibt aber Dir überlassen, WO Du die Ausnahme abfängst. Das kann innerhalb der Funktion $blubb->fooBar() und damit innerhalb der Klasse sein oder auch außer der Funktion und Klasse. Grundsätzlich würde ich aber eine Ausnahme immer genau dort abfangen, wo sie auftritt, nämlich innerhalb von $blubb->fooBar(). Fängst Du den Fehler außerhalb ab, mußt Du das ja dann überall tun, wo Du $blubb->fooBar() verwendest. Diese Redundanz ist wenig sinnvoll. Auch sonst hast Du aus meiner Sicht oben zu prozedural gedacht. Viele Grüße Lutz
php::bar PHP Wiki - Listenarchive