Richtiger Umgang mit Exceptions?
7. Juni 2015
Da ich ja endlich mich mit OOP in PHP auseinandersetze, möchte ich natürlich gleich Exceptions korrekt abfangen. Die sind natürlich nur für die Signalisierung eines Fehlers zuständig. Sonst würden sie ja nicht “Ausnahmen” heißen. Mit dieser Exception kann man dann ein weiteres vorgehen einfacher und korrekt behandeln. So kann ich sagen wenn Exception XYZ eintrifft […]

Da ich ja endlich mich mit OOP in PHP auseinandersetze, möchte ich natürlich gleich Exceptions korrekt abfangen.
Die sind natürlich nur für die Signalisierung eines Fehlers zuständig. Sonst würden sie ja nicht "Ausnahmen" heißen.
Mit dieser Exception kann man dann ein weiteres vorgehen einfacher und korrekt behandeln.
So kann ich sagen wenn Exception XYZ eintrifft möchte ich, das dass Script abbricht und nicht mehr fortgeführt werden. Also ein Fatal Error.
Aber es geht natürlich auch das die Exception einfach nur als Warning oder Notice behandelt wird und danach einfach weiter läuft.
Wie immer ist die Theorie einfach, die Praxis aber nicht.
Die Grundbau einer Exceptions
PHP hat hierfür eine eigene Basisklasse, bei Java und C++ gibt es auch eigene Klassen, also Mehrzahl (Beispiele in WIkipedia).
Jede nicht abgefangene Exception wirft einen Fatal Error auf, dies kann man im Groben meist unterbinden wenn man richtig arbeitet.
Während andere Sprachen gleich mehrere Klassen haben, hat PHP hier die Basisklasse die später in weitere Klassen ableitet.
Hier eine Default Exception:
[php]throw new Exception('Exception message');[/php]
Natürlich kann man diese Klassen auch selbst erweitern:
class CustomException extends Exception {
}
throw new CustomException ('Exception message');
Für eine Fehlerbehandlung nutzt man dann die "try & catch" Funktion.
Man behandelt den Fehler und führt danach das Script weiter aus.
Es genügt, wenn man Logs schreibt um später das ganze zu Analysieren.
[php]try {
// Der Code der später "eventuell" Probleme ausführt
} catch(CustomException $e) {
// Fehlerbehandlung
}
[/php]
Die sogenannte Ausnahmen
Exceptions sind nur für Fälle da die niemals eintreten sollten.
Beispielsweise:
- Fehlgeschlagene Authentifizierung bei API-Zugriffen
- Fehlgeschlagene Datenbankverbindung
- Falscher oder unerlaubter Datentyp übergeben (Invalid argument)
- Die Eingabe ist nicht den Erwartungen gerecht(Leerer String bei Eingabe, Injections Versuch usw.)
- Korrekter Antwort des Servers(Valides Ergebnis, korrekter Datentyp etc.)
Kommentare
Kommentare werden geladen...