Dans le processus quotidien de développement du projet, il y aura toujours des erreurs anormales inattendues. Si nous ne les traitons pas relativement bien, le programme semblera très peu professionnel et deviendra probablement celui de quelqu'un d'autre. système ; certaines exceptions d'erreur mettront fin à l'exécution du script. S'il n'y a pas de message d'erreur à ce moment-là, nous ne pouvons regarder le code que depuis le début. Nous devons savoir que les centaines ou les milliers de lignes de code du projet sont quoi. chose terrifiante, alors comment pouvons-nous localiser rapidement et précisément les exceptions et les erreurs pendant le processus de développement du projet et les gérer en conséquence. Cet article utilise ma propre compréhension de la gestion des erreurs et des exceptions, puis la partage avec tout le monde pour apprendre les uns des autres ? et servir de rappel.
Gestionnaire d'erreurs système :
PHP Dans des circonstances normales, les erreurs seront générées normalement, mais dans certains frameworks, cela peut affecter la sortie d'erreur. Il se peut que le framework lui-même ait son propre traitement. mécanisme, ou il peut être traité dans le code, généralement ces paramètres de fonction :
1.error_reporting(); Définit le niveau d'erreur de PHP et renvoie le niveau actuel
error_reporting(report_level)
Si le niveau du paramètre n'est pas spécifié, le niveau d'erreur actuel sera renvoyé. Les éléments suivants sont les valeurs possibles du niveau :
Il convient de noter ici que lorsque $level est 0, la sortie d'erreur est désactivée, c'est-à-dire qu'aucune erreur sera émis.
2.set_error_handler()
Définition et utilisation
La fonction set_error_handler() définit une fonction de gestion des erreurs définie par l'utilisateur.
Cette fonction est utilisée pour créer la propre méthode de gestion des erreurs de l'utilisateur pendant l'exécution.
Cette fonction renvoie l'ancien gestionnaire d'erreurs, ou null en cas d'échec.
Syntaxe
set_error_handler(error_function,error_types)
Astuce : Si cette fonction est utilisée, les erreurs PHP standard seront complètement contournées Handler fonction, si nécessaire, le gestionnaire d'erreurs défini par l'utilisateur doit terminer (die()) le script,
Remarque : Si une erreur se produit avant l'exécution du script, puisque le programme personnalisé n'a pas été enregistré à ce moment-là , ce gestionnaire d'erreurs personnalisé ne sera pas utilisé.
Le code de test est le suivant :
/** * * @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);
//D'après le cas ci-dessus, nous pouvons savoir que lors de l'enregistrement de la méthode my_error, le système écrasera automatiquement la gestion des erreurs d'origine error_fuction( ) méthode
Déclencheur d'erreur personnalisé
Définition et utilisation
La fonction trigger_error() crée un message d'erreur défini par l'utilisateur.
trigger_error() est utilisé pour déclencher un message d'erreur dans des conditions spécifiées par l'utilisateur. Il est utilisé avec le gestionnaire d'erreurs intégré ou avec des fonctions définies par l'utilisateur créées avec la fonction set_error_handler().
Si un type d'erreur illégal est spécifié, cette fonction renvoie false, sinon elle renvoie true.
Syntaxe
trigger_error(error_message,error_types)
Le code de test est le suivant :
/** * * @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); }
Les résultats en cours d'exécution sont les suivants :
ATTENTION :
Numéro d'erreur : 512
Message d'erreur : ceci est une erreur
Ce qui précède représente l'intégralité du contenu de cet article, j'espère vous l'aimez.
Pour plus d'articles liés au mécanisme de gestion des erreurs PHP, veuillez faire attention au site Web PHP chinois !