Maison  >  Article  >  développement back-end  >  méthodes de gestion des erreurs et d'implémentation php

méthodes de gestion des erreurs et d'implémentation php

jacklove
jackloveoriginal
2018-05-22 14:16:411392parcourir

Cet article expliquera comment implémenter la gestion des erreurs PHP.

Comment implémenter la gestion des erreurs, des avertissements et des exceptions en PHP, quelles fonctions sont utilisées pour gérer les erreurs correspondantes

Les invites d'exception php sont divisées en trois catégories erreur/avertissement/avis

Supplément d'erreur :

Erreur fatale : Erreur fatale (script terminé)

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 // Démarrage PHP Erreur fatale lors de l'initialisation

E_COMPILE_ERROR // Erreur fatale lors de la compilation, tout comme un E_ERROR généré par le moteur de script Zend

E_USER_ERROR // Message d'erreur personnalisé. Comme utiliser la fonction PHP trigger_error (le type d'erreur est défini sur : E_USER_ERROR)

E_RECOVERABLE_ERROR //Erreurs fatales qui peuvent être détectées. 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 de la syntaxe au moment de la compilation, erreur de syntaxe (le script se termine en cours d'exécution)

E_PARSE // Erreur d'analyse de la syntaxe au moment de la compilation

Supplément d'avertissement : erreur d'avertissement (uniquement étant donné A un message d'invite apparaît et le script ne se termine pas.)

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 se 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 les erreurs fatales pendant l'exécution, pas lors de l'interprétation. Erreur d'exécution, car il s'agit d'une fonction exécutée une fois l'exécution du programme terminée (comme les erreurs de syntaxe, les erreurs générées pendant l'exécution ne seront pas détectées)

set_error_handler('funcName') //Paramètres C'est le cas. le nom de la fonction du rappel qui doit être capturé. Il est différent de register_shutdown_function, qui capture les erreurs lors de l'exécution de la fonction

Lorsqu'une erreur est rencontrée lors de l'exécution du fichier cible, le système le fera. rappeler la fonction spécifiée :

Exemple :

register_shutdown_function( "fatal_handler" );
set_error_handler("error_handler");
define('E_FATAL', 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);
}
}

//Obtenir toutes les erreurs

function error_handler($errno,$errstr,$errfile,$errline){
$str=<< "errno":$errno
"errstr":$errstr
"errfile":$errfile
"errline":$errline
EOF;
//获取到错误可以自己处理,比如记Log、报警等等
echo $str;
}
//error_get_last() 捕获到的执行错误结果
//error_clear_last() 清除最后一次产生的错误信息

//Les deux ci-dessus peuvent capturer toutes les erreurs, avertissements et exceptions, mais pour des raisons de performances, il n'est pas recommandé d'utiliser leur capture Attention exception

Cet article présente les méthodes de gestion des erreurs Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois.

Recommandations associées :

PHP obtient la valeur spécifiée d'un tableau multidimensionnel dans quelle colonne du tableau ?

Apprentissage de base du php : tableaux et structures de données PHP

Apprentissage de base du php : système de fichiers PHP

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