OOP mit PHP5 - Einstiegstutorial 2 - Erläuterungen
1. Die Abschnitte
- Fehlerbehandlung
- Die Vollpfosten-Exception
- Die Daten-Exception
- Eine Variante
- Typprüfung
- Erläuterungen
2. Verständnis
Ich hoffe, dass die erste Einführung in die Ausnahmebehandlung euch ein wenig erleuchtet hat. Zum besseren Verständnis fasse ich die vorherigen Erkenntnisse noch mal kurz zusammen.
3. Exception-Klassen
Man kann unterschiedliche Ausnahme-Klassen erstellen, um auf Fehler flexibel zu reagieren. So besteht die Möglichkeit, verschiedene Abstufungen für mögliche Fehler vorzunehmen. Und darauf reagiert man dann unterschiedlich. Dabei kann man je nach Stufe unterscheiden, also zum Beispiel ganz üble Fehler, nicht ganz so schlimme oder die falsche Übergabe von Werten durch irgendwen. So hätten wir auch durchaus drei entsprechende Klassen festlegen können.
class vollpfosten_exception extends exception {}
class daten_exception extends exception {}
class user_exception extends exception {}
4. Einflussnahme
Ohne eine eigene Ausnahmebehandlung außerhalb der Klasse mit try
und catch
führt ein Exception-Fehler in diesem
Bespiel immer zu einem Fatal error
und zu einem Abbruch des Scriptes. Im gegenteiligen Fall hat man volle Kontrolle über
die Exceptions und kann sogar die Ausgabe von Fehlern selber steuern.
5. Vorgehensweise
Und wie regelt man nun die Ausnahmebehandlung? Gute Frage, stellt die nächste! Auch hier gibt es mal wieder (wie sollte es auch anders sein) kein Patentrezept. Ich denke aber, dass es ein paar Regeln gibt.
- Grundsätzlich sollte der Entwickler einer Klasse immer(!) eine entsprechende Ausnahmebehandlung einbauen.
- Diese Ausnahmebehandlung sollte in einer oder mehreren leeren Exception-Klassen festgelegt werden.
- Der Nutzer einer Klasse kann nach eigenem Gutdünken die Ausnahmebehandlung beeinflussen, ist aber auch für die Konsequenzen verantwortlich.
6. Tipps
Solltet ihr zu Mehreren an einem Projekt arbeiten, so ist eine intensive Abstimmung über die Ausnahmebehandlung eigentlich unerlässlich. Den Einzelkämpfern unter euch sei nur gesagt, geht so vor, als ob ihr auch in einem Team arbeitet. Das erspart Arbeit und die Suche nach Fehlern.
7. Typprüfung
Hier habe ich erst mal nur ein kleines Beispiel eingebaut, über die Funktionsweise von Type Hinting und instanceof
kläre ich euch später auf. Also nicht wenn ihr die Geschlechtsreife erlangt habt, sondern wenn ich Zeit und Muße dazu habe.
8. Ein Hinweis
Hier ging es nur um den ersten Einstieg in Exceptions. Im ersten Praxistutorial werde ich darauf noch mal genauer eingehen.