Heim > Artikel > Backend-Entwicklung > PHP-Fehlerbehandlungsmechanismus
Im täglichen Projektentwicklungsprozess wird es immer einige unerwartete ungewöhnliche Fehler geben. Wenn wir nicht relativ gut damit umgehen, wird das Programm sehr unprofessionell aussehen und es ist wahrscheinlich, dass es von jemand anderem angegriffen wird System; Einige Fehlerausnahmen beenden die Skriptausführung. Wenn zu diesem Zeitpunkt keine Fehlermeldung angezeigt wird, können wir uns nur den Code von Anfang an ansehen. Wir müssen wissen, dass es sich um Hunderte oder Tausende von Codezeilen handelt Wie können wir also Ausnahmen und Fehler während des Projektentwicklungsprozesses schnell und genau lokalisieren und entsprechend behandeln? Dieser Artikel nutzt mein eigenes Verständnis der Fehler- und Ausnahmebehandlung und teilt es dann mit allen, um voneinander zu lernen als Erinnerung dienen.
Systemfehlerbehandler:
PHP Unter normalen Umständen werden Fehler normal ausgegeben, aber in einigen Frameworks kann es sein, dass das Framework selbst über eine eigene Verarbeitung verfügt Mechanismus, oder es kann im Code verarbeitet werden, normalerweise diese Funktionseinstellungen:
1.error_reporting(); Legen Sie die Fehlerstufe von PHP fest und geben Sie die aktuelle Stufe zurück
error_reporting(report_level)
Wenn die Parameterebene nicht angegeben ist, wird die aktuelle Fehlerebene zurückgegeben. Die folgenden Elemente sind die möglichen Werte von level:
Hier ist zu beachten, dass die Fehlerausgabe deaktiviert ist, wenn $level 0 ist, d. h. es werden keine Fehler ausgegeben ausgegeben wird.
2.set_error_handler()
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 Fehlerhandler oder bei einem Fehler Null zurück.
Syntax
set_error_handler(error_function,error_types)
Tipp: Wenn diese Funktion verwendet wird, werden Standard-PHP-Fehler vollständig vom Handler umgangen Funktion, ggf. muss der benutzerdefinierte Fehlerhandler das Skript beenden (die()),
Hinweis: Wenn ein Fehler auftritt, bevor das Skript ausgeführt wird, da das benutzerdefinierte Programm zu diesem Zeitpunkt noch nicht registriert wurde , es Dieser benutzerdefinierte Fehlerhandler wird nicht verwendet.
Der Testcode lautet wie folgt:
/** * * @param type $error_level 错误级别 * @param type $error_message 错误信息 * @param type $error_file 可选 错误文件 * @param type $error_line 可选 错误行 * @param type $error_context 可选。规定一个数组,包含了当错误发生时在用的每个变量以及它们的值。 */ function my_error($error_level, $error_message, $error_file, $error_line, $error_context) { echo date('Y-m-d H:i:s') . $error_level . $error_message . $error_file . $error_line; var_dump($error_context); } set_error_handler('my_error', E_ALL); print_r($a);
// Aus dem obigen Fall können wir erkennen, dass das System bei der Registrierung der my_error-Methode automatisch die ursprüngliche Fehlerbehandlung error_fuction überschreibt( )-Methode
Benutzerdefinierter Fehlerauslöser
Definition und Verwendung
Die Funktion „trigger_error()“ erstellt eine benutzerdefinierte Fehlermeldung.
trigger_error() wird verwendet, um unter benutzerdefinierten Bedingungen eine Fehlermeldung auszulösen. Es wird mit dem integrierten Fehlerhandler oder mit benutzerdefinierten Funktionen verwendet, die mit der Funktion set_error_handler() erstellt wurden.
Wenn ein unzulässiger Fehlertyp angegeben ist, gibt diese Funktion „false“ zurück, andernfalls gibt sie „true“ zurück.
Syntax
trigger_error(error_message,error_types)
Der Testcode lautet wie folgt:
/** * * @param type $level * @param type $msg */ function my_error($level, $msg) { switch ($level) { case E_USER_ERROR: echo "ERROR:<br/>"; break; case E_USER_WARNING: echo "WARNING:<br/>"; break; case E_USER_NOTICE: echo "NOTICE:<br/>"; break; default: break; } echo "错误编号:" . $level . " <br/>"; echo "错误信息:" . $msg; } //注册错误处理器 set_error_handler('my_error'); if (89 > 8) { //调用错误触发器 trigger_error('这是错误啊', E_USER_WARNING); }
Die laufenden Ergebnisse sind wie folgt:
WARNUNG:
Fehlernummer: 512
Fehlermeldung: Dies ist ein Fehler
Das Obige ist hoffentlich der gesamte Inhalt dieses Artikels es gefällt dir.
Weitere Artikel zum PHP-Fehlerbehandlungsmechanismus finden Sie auf der chinesischen PHP-Website!