0251 / 590 837 15
info@a-coding-project.de

Exceptions in PHP werfen / abfangen

Exceptions sind Ausnahmen bzw. Fehler in einer Anwendung. Wenn bei PHP ein Fehler auftritt, wird meistens mit die das ganze Script abgebrochen. Sinnvolle Fehlermeldung für den Benutzer ist das Fehlanzeige. Mit Exceptions können wir selbst Fehler werfen und Abfangen.

Als kleines Beispiel erstellen wir nun ein Script, in welchen eine Funktion ist, die uns einfach nur das übergebene Argument ausgibt. Wurde nichts (false) oder ein Leerstring übergeben, werfen wir eine Exception und geben sie aus:

<?php
  function echoString($input){
    if (!$input or $input == "") {
      throw new Exception('Es wurde kein Element übergeben!');
    }
    else{
      echo $input."<br />";
    }
  }

  try{
    echoString("Das wird noch ausgegeben");
    echoString("");
  }
  catch (Exception $ex){
    echo "<strong>Fehler</strong>: ",  $ex->getMessage()."<br />";
  }

  echo "Das wird wieder ausgegeben";
?>

Das ganze erzeugt folgende Ausgabe:

Das wird noch ausgegeben
Fehler: Es wurde kein Element übergeben!
Das wird wieder ausgegeben

Mit Throws new Exception wirft man eine Exception. Als Parameter wird die Fehlerbeschreibung übergeben. Wenn die Funktion in einem Try-Carch Block abgerufen wird, wird beim Fehler ins Catch gesprungen. Hier ist in $ex der Fehler gespeichert. Mit getMessage kann man die Meldung auslesen.

Meiner Meinung nach sind exceptions besser als die. Denn hier kann man bei einem Fehler direkt darauf reagieren. Man könnte so zum Beispiel die Fehlermeldung direkt per Mail an den Admin schicken. Beim die bricht das ganze sofort ab.