Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Fehlerbehandlung und -Implementierung – CSDN-Blog

PHP-Fehlerbehandlung und -Implementierung – CSDN-Blog

不言
不言Original
2018-04-13 10:23:091413Durchsuche

Dieser Artikel stellt die Fehlerbehandlung und Implementierung von PHP vor. Wenn Sie ihn benötigen, können Sie hier nachschlagen.

Wie man Fehler, Warnungen und Ausnahmen behandelt PHP, diese Funktion wird verwendet, um den entsprechenden Fehler zu behandeln



PHP-Ausnahmeaufforderungen sind in drei Kategorien unterteilt: Fehler/Warnung/Hinweis
Fehlerzusatz:
Schwerwiegend Fehler: Schwerwiegender Fehler (laufendes Skript beenden)
E_ERROR // Schwerwiegender Ausführungsfehler, Fehler kann nicht behoben werden, Ausführung des Skripts wird angehalten
E_CORE_ERROR // Schwerwiegender Fehler während des PHP-Startinitialisierungsprozesses
E_COMPILE_ERROR // Schwerwiegender Fehler während der Kompilierung, wie z. B. Eine E_ERROR
E_USER_ERROR // benutzerdefinierte Fehlermeldung wird von der Zend-Skript-Engine generiert. Wie die Verwendung der PHP-Funktion trigger_error (der Fehlertyp ist auf E_USER_ERROR eingestellt)
E_RECOVERABLE_ERROR //Schwerwiegender Fehler, der erfasst werden kann. Es weist darauf hin, dass ein potenziell gefährlicher Fehler aufgetreten ist, der jedoch nicht zu einer Instabilität der PHP-Engine geführt hat.
Parse-Fehler: Kompilierungszeit-Parsing-Fehler, Syntaxfehler (Skript wird ausgeführt)
E_PARSE // Syntax-Parsing-Fehler während der Kompilierung
Warnungsergänzung: Warnfehler (es werden nur Eingabeaufforderungsinformationen angegeben, die Ausführung des Skripts wird nicht beendet )
E_WARNING // Laufzeitwarnung (nicht schwerwiegender Fehler).
E_CORE_WARNING // Warnung (nicht schwerwiegender Fehler), die während des PHP-Initialisierungsstarts aufgetreten ist.
E_COMPILE_WARNING // Kompilierungswarnung
E_USER_WARNING // Vom Benutzer generierte Warnmeldung
Ergänzung zur Ausnahmebenachrichtigung: Benachrichtigungsfehler (es werden nur Benachrichtigungsinformationen angegeben, das Skript beendet den Vorgang nicht)
E_NOTICE // Laufzeitbenachrichtigung. Zeigt an, dass das Skript auf eine Situation stößt, die als Fehler erscheinen kann.
E_USER_NOTICE // Vom Benutzer generierte Benachrichtigungsinformationen.




php-Fehlerbehandlungsimplementierung:
register_shutdown_function('funcName') // Der Parameter ist der Name der Funktion, die Fehler erfassen muss, aber register_shutdown_function kann nur erfassen Schwerwiegende Fehler zur Laufzeit Fehler können Ausführungsfehler während der Interpretation nicht erfassen, da es sich um Funktionen handelt, die nach Abschluss der Programmausführung ausgeführt werden (z. B. Syntaxfehler, Fehler, die während der Laufzeit auftreten, werden nicht erfasst)
set_error_handler('funcName') // Der Parameter ist der Funktionsname des Rückrufs, der erfasst werden muss. Er unterscheidet sich von register_shutdown_function, das Fehler während der Ausführung der Funktion erfasst.


Wenn die Zieldatei während der Ausführung auf einen Fehler stößt, wird die Das System ruft die angegebene Funktion zurück:
Beispiel:

<?php
		register_shutdown_function( "fatal_handler" );
		set_error_handler("error_handler");
		define(&#39;E_FATAL&#39;,  E_ERROR | E_USER_ERROR |  E_CORE_ERROR | 
        E_COMPILE_ERROR | E_RECOVERABLE_ERROR| E_PARSE );  


		//获取fatal error
		function fatal_handler() {
		    $error = error_get_last();
		    if($error && ($error["type"]===($error["type"] & E_FATAL))) {
		        $errno   = $error["type"]; //
		        $errfile = $error["file"];
		        $errline = $error["line"];
		        $errstr  = $error["message"];
		        error_handler($errno,$errstr,$errfile,$errline);
		  }
		}
		//获取所有的error
		function error_handler($errno,$errstr,$errfile,$errline){
		    $str=<<<EOF
		         "errno":$errno
		         "errstr":$errstr
		         "errfile":$errfile
		         "errline":$errline
			EOF;
		//获取到错误可以自己处理,比如记Log、报警等等
		    echo $str;
		}


		//error_get_last() 捕获到的执行错误结果


		//error_clear_last() 	清除最后一次产生的错误信息


		//上面两者可以捕获所有错误,警告, 异常,但作性能考虑,不建议使用其捕获警告异常

Verwandte Empfehlungen:

A Kurze Analyse der PHP-Fehlerbehandlung, des automatischen Ladens, des Stapelspeichers und des Betriebsmodus

PHP-Fehlerbehandlungsinstanzmethode

PHP-Fehler- und Ausnahme-Debugging-Video Teilen von Tutorial-Ressourcen













Das obige ist der detaillierte Inhalt vonPHP-Fehlerbehandlung und -Implementierung – CSDN-Blog. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn