PHP set_error_handler()Funktionen
Vollständiges PHP-Fehler-Referenzhandbuch
Definition und Verwendung
Die Funktion set_error_handler() legt eine benutzerdefinierte Fehlerbehandlungsfunktion fest.
Diese Funktion wird verwendet, um zur Laufzeit eine eigene Fehlerbehandlungsmethode des Benutzers zu erstellen.
Diese Funktion gibt den alten Fehlerbehandler zurück oder NULL, wenn sie fehlschlägt.
Syntax
| Parameters | Beschreibung |
|---|---|
| error_function | Erforderlich. Gibt die Funktion an, die ausgeführt werden soll, wenn ein Fehler auftritt. |
| error_types | Optional. Gibt an, welche Fehlerberichtsebene benutzerdefinierte Fehler anzeigt. Standard ist "E_ALL". Mögliche Fehlerberichtsebenen finden Sie in der Tabelle unten. |
error_function
Syntax
error_file,error_line,error_context)
| Parameters | Beschreibung |
|---|---|
| error_level | Erforderlich. Gibt die Fehlerberichtsebene für benutzerdefinierte Fehler an. Muss ein numerischer Wert sein. Mögliche Fehlerberichtsebenen finden Sie in der Tabelle unten. |
| error_message | Erforderlich. Gibt die Fehlermeldung für den benutzerdefinierten Fehler an. |
| error_file | Optional. Gibt den Dateinamen an, in dem der Fehler aufgetreten ist. |
| error_line | Optional. Gibt die Zeilennummer an, in der der Fehler aufgetreten ist. |
| error_context | Optional. Gibt ein Array an, das auf die aktive Symboltabelle verweist, in der der Fehler aufgetreten ist. Mit anderen Worten, error_context enthält ein Array, das den Gültigkeitsbereich erklärt, in dem jede Variable existiert, die den Fehler verursacht hat. |
Fehlerberichtsebenen
| Wert | Konstante | Beschreibung |
|---|---|---|
| 2 | E_WARNING | Nicht schwerwiegende Laufzeitfehler. Die Ausführung des Skripts wird nicht angehalten. |
| 8 | E_NOTICE | Laufzeithinweise. Das Skript entdeckt etwas, das ein Fehler sein könnte, aber es kann auch während der normalen Skriptausführung auftreten. |
| 256 | E_USER_ERROR | Vom Benutzer erzeugter schwerwiegender Fehler. Dies ist wie ein E_ERROR, der vom Programmierer mit der PHP-Funktion trigger_error() erzeugt wird. |
| 512 | E_USER_WARNING | Vom Benutzer erzeugter nicht schwerwiegender Fehler. Dies ist wie ein E_WARNING, der vom Programmierer mit der PHP-Funktion trigger_error() erzeugt wird. |
| 1024 | E_USER_NOTICE | Vom Benutzer erzeugter Hinweis. Dies ist wie ein E_NOTICE, das vom Programmierer mit der PHP-Funktion trigger_error() erzeugt wird. |
| 4096 | E_RECOVERABLE | Abfangbarer schwerwiegender Fehler. Dies ist wie ein E_ERROR, der von einem benutzerdefinierten Handler 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). |
Tipps und Hinweise
Tipp:Wenn diese Funktion verwendet wird, wird die standardmäßige PHP-Fehlerbehandlungsfunktion vollständig umgangen. Falls erforderlich, muss der benutzerdefinierte Fehlerhandler das Skript beenden (die()).
Hinweis:Wenn ein Fehler auftritt, bevor das Skript ausgeführt wird, wird der benutzerdefinierte Fehlerhandler nicht verwendet, da der benutzerdefinierte Handler zu diesem Zeitpunkt noch nicht registriert wurde.
Beispiele
//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 handler
set_error_handler("customError");
$test=2;
//Fehler auslösen
if ($test>1)
{
trigger_error("A custom error has been triggered");
}
?>
Die Ausgabe des obigen Codes ist unten dargestellt:
Fehler in Zeile 19 in C:webfoldertest.php
Ending Script
Vollständiges PHP-Fehler-Referenzhandbuch Andere Erweiterungen