Maison  >  Article  >  développement back-end  >  Gestion et implémentation des erreurs PHP - CSDN Blog

Gestion et implémentation des erreurs PHP - CSDN Blog

不言
不言original
2018-04-13 10:23:091426parcourir

Cet article présente la gestion des erreurs et l'implémentation de PHP. Maintenant, je le partage avec vous. Si vous en avez besoin, vous pouvez vous y référer

1 Comment implémenter la gestion des erreurs, des avertissements et des exceptions. php, ceux La fonction est utilisée pour gérer l'erreur correspondante



les invites d'exception php sont divisées en trois catégories erreur/avertissement/avis
Supplément d'erreur :
Fatal Erreur : Erreur fatale (arrêt du script en cours d'exécution)
E_ERROR // Erreur d'exécution fatale, l'erreur ne peut pas être récupérée, l'exécution du script est suspendue
E_CORE_ERROR // Erreur fatale lors du processus d'initialisation du démarrage de PHP
E_COMPILE_ERROR // Erreur fatale lors de la compilation, comme Un message d'erreur E_ERROR
E_USER_ERROR // personnalisé est généré par le moteur de script Zend. Comme utiliser la fonction PHP trigger_error (le type d'erreur est défini sur : E_USER_ERROR)
E_RECOVERABLE_ERROR //Erreur fatale qui peut être capturée. Cela indique qu'une erreur potentiellement dangereuse s'est produite, mais n'a pas rendu le moteur PHP instable.
Erreur d'analyse : erreur d'analyse au moment de la compilation, erreur de syntaxe (le script se termine en cours d'exécution)
E_PARSE // Erreur d'analyse de syntaxe lors de la compilation
Supplément d'avertissement : erreur d'avertissement (seules les informations d'invite sont fournies, le script ne termine pas son exécution )
E_WARNING // Avertissement d'exécution (erreur non fatale).
E_CORE_WARNING // Avertissement (erreur non fatale) survenu lors du démarrage de l'initialisation de PHP.
E_COMPILE_WARNING // Avertissement de compilation
E_USER_WARNING // Message d'avertissement généré par l'utilisateur
Supplément de notification d'exception : erreur de notification (seules les informations de notification sont données, le script ne termine pas l'opération)
E_NOTICE // Notification d'exécution. Indique que le script rencontre une situation qui peut apparaître comme une erreur
E_USER_NOTICE // Informations de notification générées par l'utilisateur.




implémentation de la gestion des erreurs php :
register_shutdown_function('funcName') // Le paramètre est le nom de la fonction qui doit capturer les erreurs, mais register_shutdown_function ne peut capturer que erreurs fatales au moment de l'exécution Les erreurs ne peuvent pas capturer les erreurs d'exécution lors de l'interprétation, car ce sont des fonctions exécutées une fois l'exécution du programme terminée (comme les erreurs de syntaxe, les erreurs qui se produisent pendant l'exécution ne seront pas capturées)
set_error_handler('funcName') // Le paramètre est le nom de la fonction du rappel qui doit être capturé, qui est différent de register_shutdown_function, qui capture les erreurs lors de l'exécution de la fonction


Lorsque le fichier cible rencontre une erreur lors de l'exécution, le le système rappellera la fonction spécifiée :
Exemple :

<?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() 	清除最后一次产生的错误信息


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

Recommandations associées :

A brève analyse de la gestion des erreurs PHP, du chargement automatique, de la mémoire de la pile et du mode d'exécution

Méthode d'instance de gestion des erreurs PHP

Vidéo de débogage des erreurs et exceptions PHP partage de ressources tutoriel













Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Fonction chunk_split() de PHPArticle suivant:Fonction chunk_split() de PHP