Die Funktion set_error_handler() legt eine benutzerdefinierte Fehlerbehandlungsfunktion fest.
Diese Funktion wird verwendet, um zur Laufzeit eine eigene Fehlerbehandlungsmethode für den Benutzer zu erstellen.
Diese Funktion gibt bei einem Fehler den alten Fehlerbehandler oder NULL zurück.
set_error_handler(error_function,error_types)
Parameter | beschreiben |
---|---|
Fehlerfunktion | Erforderlich. Gibt die Funktion an, die ausgeführt werden soll, wenn ein Fehler auftritt. |
Fehlertypen | Optional. Gibt an, auf welcher Fehlerberichtsebene benutzerdefinierte Fehler angezeigt werden. Der Standardwert ist „E_ALL“. Mögliche Fehlermeldeebenen sind in der folgenden Tabelle aufgeführt. |
error_function(error_level,error_message,error_file,error_line,error_context)
Parameter | beschreiben |
---|---|
Fehlerebene | Erforderlich. Gibt die Fehlerberichtsebene für benutzerdefinierte Fehler an. Muss eine Wertzahl sein. Mögliche Fehlermeldeebenen sind in der folgenden Tabelle aufgeführt. |
error_message | Erforderlich. Gibt die Fehlermeldung für benutzerdefinierte Fehler an. |
Fehlerdatei | Optional. Gibt den Dateinamen an, in dem der Fehler aufgetreten ist. |
Fehlerzeile | Optional. Gibt die Zeilennummer an, in der der Fehler aufgetreten ist. |
Fehlerkontext | Optional. Gibt ein Array an, das auf die aktive Symboltabelle zeigt, in der der Fehler aufgetreten ist. Mit anderen Worten: error_context enthält ein Array, das den existenziellen Bereich beschreibt, in dem jede Variable einen Fehler auslöst. |
Wert | Konstante | beschreiben |
---|---|---|
2 | E_WARNUNG | Nicht schwerwiegender Laufzeitfehler. Die Skriptausführung wird nicht gestoppt. |
8 | E_NOTICE | Laufzeitbenachrichtigungen. Die Skripterkennung kann ein Fehler sein, kann aber auch bei normaler Ausführung eines Skripts auftreten. |
256 | E_USER_ERROR | Vom Benutzer generierter schwerwiegender Fehler. Dies ähnelt dem E_ERROR, der vom Programmierer mit der PHP-Funktion trigger_error() generiert wird. |
512 | E_USER_WARNING | Vom Benutzer generierter, nicht schwerwiegender Fehler. Dies ist wie eine E_WARNING, die vom Programmierer mit der PHP-Funktion trigger_error() generiert wird. |
1024 | E_USER_NOTICE | Vom Benutzer generierte Benachrichtigungen. Dies ähnelt der E_NOTICE, die der Programmierer mit der PHP-Funktion trigger_error() generiert. |
4096 | E_RECOVERABLE_ERROR | Abfangbare schwerwiegende Fehler. Dies ist wie ein E_ERROR, der von einem benutzerdefinierten Handle abgefangen werden kann (siehe set_error_handler()). |
8191 | E_ALL | Alle Fehler- und Warnstufen außer E_STRICT (seit PHP 6.0 wird E_STRICT Teil von E_ALL sein). |
Tipp: Wenn diese Funktion verwendet wird, werden die standardmäßigen PHP-Fehlerbehandlungsfunktionen vollständig umgangen. Bei Bedarf muss der benutzerdefinierte Fehlerbehandler das Skript beenden (die()). Hinweis: Wenn ein Fehler auftritt, bevor das Skript ausgeführt wird, wird der benutzerdefinierte Fehlerhandler nicht verwendet, da das benutzerdefinierte Programm zu diesem Zeitpunkt noch nicht registriert wurde.
<?php//error handler function function customError($errno, $errstr, $errfile, $errline) { echo "<b>Benutzerdefinierter Fehler:</b> [$errno] $errstr<br />"; echo " Fehler in Zeile $errline in $errfile<br />"; echo "Ending Script"; die(); }//set error handlerset_error_handler("customError");$test=2;//trigger errorif ($test>1) { trigger_error("Ein benutzerdefinierter Fehler wurde ausgelöst" }?>
Die Ausgabe des obigen Codes sieht folgendermaßen aus:
Benutzerdefinierter Fehler: [1024] Ein benutzerdefinierter Fehler wurde in Zeile 19 im C:webfoldertest.phpEnding Script ausgelöst