Maison > développement back-end > Problème PHP > Quelles erreurs la gestion des exceptions PHP détecte-t-elle ?

Quelles erreurs la gestion des exceptions PHP détecte-t-elle ?

王林
Libérer: 2023-02-24 16:52:01
original
2715 Les gens l'ont consulté

Quelles erreurs la gestion des exceptions PHP détecte-t-elle ?

Il existe trois types de rapports d'erreurs en PHP :

1. Erreur, erreur d'analyse de syntaxe, erreur fatale

. 2. Avertissement

3. Remarque

Conséquences :

Erreur-> une erreur de syntaxe, PHP ne fonctionnera pas du tout. Il n'a pas été implémenté.

Attention -> Cela ne mettra pas fin à l'exécution, mais cela affectera les résultats.

Remarque -> ne mettra pas fin à l'exécution et n'affectera pas les résultats.

Afin de fournir aux utilisateurs une meilleure expérience, nous masquons toutes les erreurs de sortie, qui sont des sorties et non des affichages. Mais dans ce cas, l'administrateur ne pourra pas voir l'erreur. L'erreur n'est pas affichée sur la page, mais un journal est généré pour que l'administrateur puisse le consulter.

error_reporting(~E_ALL) Toutes les sorties sont bloquées. Naturellement, l'administrateur ne peut pas les voir. Je ne veux pas bloquer toutes les sorties, je veux juste bloquer tous les affichages ini_set('display_errors','off'); signifie que tous les affichages d'erreur sur la page sont bloqués, mais la sortie d'erreur n'est pas bloquée.

ini_set('log_errors','on'); //开启日志写入功能 ini_set('error_log','myerror.log');
//日志的存放位置 ini_set('display_errors','off'); //屏蔽页面显示 error_reporting(E_ALL); //输出所有错误
echo 123; echo $str; //这个会出现一个注意,表示未声明变量 echo date(); //警告,没有传参 echo dae(); 
//致命错误,找不到这个函数 echo 123;
Copier après la connexion

Exception :

Dans le langage PHP, toutes les exceptions doivent être levées d'elles-mêmes, contrairement aux langages comme JAVA qui lanceront automatiquement des exceptions. est l'une des raisons pour lesquelles les instructions de gestion des exceptions sont rarement vues dans le code source PHP.

Exceptions et erreurs :

Les exceptions font référence à des conditions qui ne répondent pas aux attentes et sont différentes du processus normal pendant le fonctionnement du programme. L'erreur est son propre problème, causé par une syntaxe illégale ou des problèmes environnementaux qui empêchent le compilateur de transmettre les paramètres de vérification et de s'exécuter.

Comme PHP n'avait pas de gestion des exceptions au début, il a ensuite été imité afin d'entrer dans le développement au niveau de l'entreprise. Une fois que PHP rencontre du code anormal, dans la plupart des cas, il générera directement une erreur au lieu d'une exception.

PHP ne peut utiliser try...catch pour intercepter les exceptions qu'après avoir lancé une exception (c'est généralement le cas, et certaines exceptions peuvent être automatiquement interceptées).

Les exceptions sont généralement utilisées dans les scénarios suivants en PHP :

1 Prédiction pessimiste du programme : Si vous pensez que votre code ne peut pas gérer différents problèmes possibles un par un. 1 Circonstances prévisibles, circonstances imprévisibles.

2. Besoins du programme et préoccupations commerciales : si la cohérence des données est très élevée, try...catch peut être utilisé pour minimiser les dommages d'interruption logique causés par les exceptions, et après correction

Après le traitement, l'intégrité de la logique métier ne sera pas affectée.

3. Exigences de robustesse au niveau du langage : en contrôlant avec précision le processus d'exécution, lorsque le programme est interrompu, utilisez try...catch pour réduire de manière prévisible la portée des erreurs possibles, intercepter les exceptions en temps opportun et faire quelque chose

Fournir les remèdes correspondants.

Erreurs en PHP :

Les erreurs sont des situations qui entraînent une exécution anormale du script.

Les principaux niveaux d'erreur en php sont les suivants :

deprecated: 最低级别的错误,表示"不推荐, 不建议"。例如在php 5中使用了ereg系列的正则函数就会出现。这类错误一般由于使用了不推荐的、过时的函数或语法造成。不影响程序正常运行,但建议修正。
notice: 一般指语法中存在不恰当的地方。如使用变量但是未定义就会报此错误。不影响程序正常流程。
warning: 较高级别的错误,在语法中出现很不恰当的情况才会出现此错误,比如函数参数不匹配。会导致得不到预期的结果,需要修改代码。
fetal error: 致命错误,直接导致程序终止运行。这类错误必须修改。
prase error: 语法解析错误,上面几种都属于运行时错误,此错误在运行前就会抛出。
Copier après la connexion

Gestionnaire d'erreurs personnalisé :


Vous pouvez utiliser la fonction set_error_handler() Le gestionnaire d'erreurs géré vous permet de personnaliser le processus de gestion des erreurs.

Si vous souhaitez annuler l'hébergement, vous pouvez utiliser restaurer_error_handler() dans la même page pour annuler l'hébergement ; si vous souhaitez générer une erreur vous-même, vous pouvez utiliser la fonction trigger_error().

Tutoriel recommandé :

Tutoriel vidéo 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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal