Dieser Artikel stellt hauptsächlich die relevanten Informationen zum PHP-Fehlerbehandlungsmechanismus vor. Er ist sehr detailliert und sehr praktisch. Freunde, die ihn benötigen, können darauf zurückgreifen.
Im täglichen Projektentwicklungsprozess wird es immer welche geben Wenn wir die unerwarteten Ausnahmefehler nicht relativ gut behandeln, sieht das Programm sehr unprofessionell aus und kann für andere zu einer wirksamen Information werden, um das System anzugreifen. Wenn keine Fehlermeldung vorliegt, können wir nur nachsehen Es ist für uns von Anfang an schrecklich, Hunderte oder Tausende von Codezeilen im Projekt zu kennen. Wie können wir das Projekt während des Projektentwicklungsprozesses schnell und genau lokalisieren und damit umgehen? Dementsprechend basiert dieser Artikel auf meinem eigenen Verständnis von Fehlern und der Ausnahmebehandlung und ich werde ihn mit allen teilen, um zu lernen und miteinander zu kommunizieren, und als Memo dienen.
Systemfehlerbehandler:
PHP Unter normalen Umständen werden Fehler normal ausgegeben, aber in einigen Frameworks kann dies Auswirkungen auf die Fehlerausgabe haben, möglicherweise auf das Framework Es handelt sich um einen eigenen Verarbeitungsmechanismus, oder es kann im Code verarbeitet werden. Im Allgemeinen sind diese Funktionseinstellungen:
1.error_reporting(); Legen Sie die Fehlerberichtsebene von PHP fest und geben Sie den aktuellen Wert zurück level
error_reporting(report_level)
Wenn der Parameter level nicht angegeben ist, wird der aktuelle Fehlerlevel zurückgegeben. Die folgenden Elemente sind mögliche Werte des Niveaus:
Wert |
Konstante |
Beschreibung |
1 |
E_ERROR |
SCHWERWIEGENDER Laufzeitfehler. Dieser Fehler kann nicht recycelt werden. Die Skriptausführung wurde unterbrochen. |
2 |
E_WARNING |
Nicht schwerwiegende Laufzeitwarnung. Die Skriptausführung wird nicht unterbrochen. |
4 |
E_PARSE |
Fehler bei der Kompilierungszeitanalyse. Beim Parsen sollten nur Fehler |
8 |
E_NOTICE |
Runtime generiert werden Benachrichtigung. Das gefundene Skript kann ein Fehler sein, aber normalerweise kann es beim Ausführen eines Skripts passieren |
16 |
E_CORE_ERROR |
Schwerwiegender Fehler beim PHPStart. Das ist wie der E_ERROR |
im Kern von PHP | >E_CORE_WARNING |
Warnung, wenn PHP startet. Dies ist wie die E_WARNING |
E_COMPILE_ERROR | Schwerwiegender Fehler bei der Kompilierung. Dies ist, als würde man die Zend-Skript-Engine übergeben, um E_ERROR |
|
128 |
E_COMPILE_WARNING | Nicht schwerwiegende Warnung zur Kompilierungszeit. Dies ist, als würde man die Zend-Skript-Engine übergeben, um E_WARNING |
256 | E_USER_ERROREin schwerwiegender benutzergenerierter Fehler, ähnlich einem Programmierer, der die PHP- | -Funktion |
512 |
E_USER_WARNING |
Nicht schwerwiegende, vom Benutzer generierte Warnung Ähnlich wie Programmierer die PHP--Funktion trigger_error verwenden, um E_WARNING |
festzulegen 1024 |
E_USER_NOTICE |
Benutzergenerierte Benachrichtigung, dies ähnelt der Verwendung der PHP -Funktion durch Programmierer trigger_error Setzen Sie E_NOTICE |
2048 |
E_STRICT |
Laufzeitbenachrichtigung. PHPSchlagen Sie Änderungen an Ihrem Code vor, um die Interoperabilität und Kompatibilität dieses Codes zu verbessern |
4096 |
E_RECOVERABLE_ERROR |
Abfangbarer schwerwiegender Fehler, ähnlich zu E_ERROR, kann aber vom benutzerdefinierten Handler erfasst werden (siehe set_error_handler()) |
8191 |
E_ALL |
Alle Fehler und Warnungen, außer Stufe E_STRICT ( in PHP6.0, E_STRICT wird Teil davon sein E_ALL) |
Hier ist zu beachten, dass die Fehlerausgabe deaktiviert ist, wenn $level 0 ist, d. h. es werden keine Fehler ausgegeben.
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)
Parameter
|
error_function | Erforderlich. Gibt die Funktion an, die ausgeführt werden soll, wenn ein Fehler auftritt. | ||||
error_types |
Optional. Gibt an, auf welcher Fehlerberichterstattungsebene benutzerdefinierte Fehler angezeigt werden. Der Standardwert ist „E_ALL“. Tipp: Wenn diese Funktion verwendet wird, wird die Standard-Fehlerbehandlungsfunktion von PHP vollständig umgangen. Bei Bedarf muss der benutzerdefinierte Fehlerhandler das Skript beenden (die()). Vor der Ausführung des Skripts tritt ein Fehler auf. Da das benutzerdefinierte Programm zu diesem Zeitpunkt noch nicht registriert wurde, wird der benutzerdefinierte Fehlerhandler nicht verwendet. Der Testcode lautet wie folgt: // 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/** * * @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); Nach dem Login kopieren Definition und Verwendung Funktion „trigger_error()“ Benutzerdefinierte Fehlermeldungen erstellen. 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)
测试代码如下: /** * * @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); } Nach dem Login kopieren 运行结果如下: WARNING: |
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Beispiele für PHP-Fehlerbehandlungsmechanismen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!