


Explication détaillée de la gestion des exceptions et des erreurs dans php7
Tout d'abord, je déclare que la version PHP de l'auteur est 7.2
- Aperçu des exceptions et erreurs
- Qu'est-ce qu'une exception ?
- Qu'est-ce qu'une erreur ?
- Gestion des exceptions
- Niveau d'erreur
- Gestionnaire d'erreurs personnalisé
- set_error_handler ()
- set_exception_handler()
- register_shutdown_function()
- Gestion des erreurs du framework
- Aperçu des exceptions et erreurs
Recommandé (gratuit) : PHP7
Aperçu des exceptions et des erreurs
Qu'est-ce qu'un exception?
L'exception fait référence à une situation qui ne répond pas aux attentes et qui est différente du processus normal pendant le fonctionnement du programme.
Par exemple, si vous vous connectez à la base de données et que tous les paramètres sont écrits, mais que le lien ne peut pas monter, ce n'est pas comme prévu
Il peut être capturé par try-catch
Qu'est-ce qu'une erreur ?
est un problème qui appartient au programme PHP lui-même. Il est généralement causé par une syntaxe illégale et des problèmes environnementaux, ce qui empêche le compilateur de passer le contrôle ou même de s'exécuter.
Les réchauffements et les avis que vous rencontrez habituellement sont tous des erreurs, mais ils sont de différents niveaux.
Par exemple :
- TypeError (erreur de type) Le type de paramètre de fonction que j'ai spécifié est incohérent avec le paramètre passé dans
- ArithmeticError (erreur arithmétique)
- ParseError (erreur d'analyse) Dans le fichier chargé, il y a une erreur de syntaxe dans include "demo.php" ou eval(); provoquant un échec d'analyse
- AssertionError (erreur d'assertion) Cette erreur se produit lorsque l'assertion prend effet
- pisionByZeroError (le dénominateur est zéro) Lors d'opérations telles que la division, le dénominateur est 0
Sauf ces situations, le reste sont des exceptions
Gestion des exceptions
Dans le php5 précédent. Lancez l'erreur dans try-catch
try{ …… }catch(Throwable $e){ …… }
Niveaux d'erreur
Les erreurs en php ont aussi des niveaux >Parse error
> Fatal Error
> Waning
>Notice
Deprecated
Deprecated 最低级别的错误(不推荐,不建议) 使用一些过期函数的时候会出现,程序继续执行 Notice 通知级别的错误 使用一些未定义变量、常量或者数组key没有加引号的时候会出现,程序继续执行 E_NOTICE // 运行时通知。表示脚本遇到可能会表现为错误的情况. E_USER_NOTICE // 用户产生的通知信息。Waning 警告级别的错误 程序出问题了,需要修改代码!!!程序继续执行 E_WARNING // 运行时警告 (非致命错误)。 E_CORE_WARNING // PHP初始化启动过程中发生的警告 (非致命错误) 。 E_COMPILE_WARNING // 编译警告 E_USER_WARNING // 用户产生的警告信息Fatal Error 错误级别的错误 程序直接报错,需要修改代码!!!中断程序执行,可使用register_shutdown_function()函数在程序终止前触发一个函数 E_ERROR // 致命的运行错误,错误无法恢复,暂停执行脚本 E_CORE_ERROR // PHP启动时初始化过程中的致命错误 E_COMPILE_ERROR // 编译时致命性错,就像由Zend脚本引擎生成了一个E_ERROR E_USER_ERROR // 自定义错误消息。像用PHP函数trigger_error(错误类型设置为:E_USER_ERROR)Parse error 语法解析错误 语法检查阶段报错,需要修改代码!!!中断程序执行,除了修改ini文件,将错误信息写到日志中,什么也做不了 E_PARSE //编译时的语法解析错误
Gestionnaire d'erreurs personnalisé
Parfois, le gestionnaire d'erreurs fourni avec PHP ne peut pas répondre pleinement à nos besoins. La plupart du temps, nous devons tous remplacer manuellement la gestion des exceptions. php nous fournit trois fonctions pour nous aider à le gérer, à savoir la fonctionset_error_handler()
- pour héberger le gestionnaire d'erreurs, qui peut être personnalisé Erreur processus de manipulation. Si une erreur se produit dans le code avant cette fonction, notre fonction de traitement personnalisé ne sera pas appelée car elle n'a pas encore été enregistréeAprès avoir défini cette fonction, error_reporting() sera invalideLes erreurs de niveau suivantes ne peuvent pas être gérées par les fonctions définies par l'utilisateur : E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING. Cette fonction ne peut détecter que certaines de nos erreurs de niveau Avertissement et Note <. 🎜>
set_exception_handler()
Utilisé pour la gestion des exceptions non interceptéesregister_shutdown_function()
Fonction : enregistrez-en une à exécuter à la fin de PHP La fonction - capture les erreurs PHP : erreur fatale, erreur d'analyse, etc. Cette méthode est la dernière fonction appelée avant la fin de l'exécution du script PHP, comme les erreurs de script, die(), la sortie, les exceptions et la fin normale. ,
- S'il est utilisé pour la gestion des erreurs, vous devez coopérer avec qui peut obtenir la dernière erreur survenue.
error_get_last()
Résultats de l'exécution举例 register_shutdown_function('shutdown');function shutdown(){ if ($error = error_get_last()) { var_dump($error); } }$name //没写 ; 号
Copier après la connexion
Emmmmm N'est-ce pas un non-sens ? Il n'est clairement pas exécuté ?Parse error: syntax error, unexpected ';' in /app/swoole/errorDemo.php on line 34
En fait, la raison est qu'avant que le programme ne soit exécuté, notre PHP va d'abord vérifier les problèmes de syntaxe de notre programme. S'il n'y a pas de problèmes, nous pouvons exécuter notre programme.Notre code ci-dessus n'a pas réussi notre vérification de syntaxe, une erreur a donc été signalée directement.
Alors quel est le problème ? Quand nous sommes dans le framework, pourquoi les frameworks nous signalent-ils toujours des erreurs ?
Gestion des erreurs du framework
Dans le framework, son code est chargé via un fichier d'entrée. Lorsque notre PHP détecte des erreurs de syntaxe, nous vérifions uniquement notre index.php. Si cela le nécessite, il ne sera pas détecté. Lorsque notre code fait une erreur, c'est une erreur détectée au moment de l'exécution, donc notre framework peut répondre en conséquence
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)