| Fehlermeldungen und Fehlerbehandlung - Exceptions |
Seite 6 von 7
Exceptions / AusnahmebehandlungExceptions, auf Deutsch Ausnahmen, wurden mit PHP 5 eingeführt und stellen im Prizip das Non Plus Ultra dar, was das Abfangen und Verarbeiten von Fehlern betrifft. Dennoch möchte ich ein kurzes Beispiel geben, wie man Exception in der Praxis anwendet und wie diese arbeiten. Zunächst der Code, dann die Erklärung: try { if (copy( 'quelldatei.txt', 'zieldatei.txt' ) === FALSE) { // Fehler wird geworfen, wenn die Datei nicht kopiert werden konnte throw new Exception( 'Die Datei konnte nicht kopiert werden!' ); } } catch (Exception $error) { echo $error->getMessage(); // Eventuell weitere Aktionen zur Fehlerbehandlung } Dies ist ein stark vereinfachtes Beispiel einer Exception. Diese besteht aus zwei Teilen: Voraussetzung ist einmal mehr die deaktivierte Fehlerausgabe von PHP, damit wir uns selbst um Fehler kümmern können. Im try-Block führen wir also Code aus, der einen Fehler verursachen könnte, der die weitere Verarbeitung des Scripts beeinträchtigen kann, z.B. herstellen einer Datenbankverbindung. Schlägt der Verbindungsaufbau fehl, brauchen wir auch nicht zu versuchen Daten aus der DB auszulesen und ebenso brauchen wir kein Template laden, durch das wir die Daten aus der DB ausgeben wollten. Als Erklärung belasse ich es dabei, da das Thema zu komplex ist, als das ich hier in die Tiefe gehen könnte. Weitere Beispiele für den praktischen Einsatz von Exception finden sich in diversen Klassen von mir, wie etwa in der Datenbank-Klasse vom Gästebuch oder auch in der FTP Klasse. Fazit für ExceptionsWer programmiertechnisch schon so weit ist, dass er OOP beherrscht und Exceptions versteht, für den gibt es meistens nichts besseres als Fehlerbehandlung. Besonders in Verbindung mit den weiter oben vorgestellten Möglichkeiten bekommt man von PHP ein sehr mächtiges und flexibles Werkzeug in die Hand, mit dem man bei auftretenden Fehlern reagieren kann, seine Site-Besucher nicht im Dunkeln stehen lässt und Angreifern den Zugang zu Informationen erheblich erschwert. |