Ausnahmebehandlung

Fehlerbehandlung

Häufig findet man folgende Fehlerbehandlung

  • sofortiger Abbruch mit die oder exit
    die("Wenden Sie sich an den Administrator");
  • Unterdrückung von Fehlermeldungen mit @
    @$f = fopen("myfile.txt","r");

Probleme

  • unvollständige Seite wird zum Browser geschickt
  • leere Seiten oder Layout-Katastrophen
  • Anwender erhält keine Rückmeldung

Ausnahmebehandlung: wie es sein sollte

PHP hat echte Ausnahmebehandlung (wie Java)

  • Fehler können mit try / catch behandelt werden
  • finally für Aufräumarbeiten
  • sinnvolle Meldungen können ausgegeben werden
  • Seite kann ordentlich abgeschlossen werden
function problematisch() {
    throw new Exception("Meine Fehlermeldung");
}

try {
    problematisch();
}
catch (Exception $e) { // Fehlerbehandlung
    echo $e->getMessage();
}

Exceptions

Basisklasse aller Ausnahmen ist Klasse Exception

  • beliebige eigene Ausnahmen daraus ableitbar
  • keine vordefinierten Exception-Klassen in PHP

Keine vorhandene PHP-Funktion wirft Ausnahmen, nur neuere Klassen

Beispiel: Eigene Ausnahmen

class MyException extends Exception { }

class AnotherException extends Exception { }

try {
    // tu was gefährliches
    throw new MyException("Mein Fehler", 99);
}
catch (MyException $e) {
    echo "MyException: ", $e->getMessage();
}
catch (AnotherException $e) {
    echo "AnotherException: ", $e->getMessage();
}
MyException: Mein Fehler

Copyright © 2025 Thomas Smits