Maison développement back-end Problème PHP php ignore le mauvais code

php ignore le mauvais code

May 06, 2023 pm 05:47 PM

PHP est un langage de programmation Web très populaire. Sa puissance ne se reflète pas seulement dans sa flexibilité et sa facilité d'utilisation, mais également dans son mécanisme de gestion des erreurs. Lorsqu'une erreur se produit dans le code PHP, le script PHP génère un message d'erreur par défaut et arrête de s'exécuter, mais nous devons parfois ignorer ces erreurs et laisser le script continuer à s'exécuter. Alors, comment ignorer les erreurs en PHP ? Cet article vous le présentera en détail.

1. Niveaux d'erreur

En PHP, les erreurs sont divisées en différents niveaux, tels que les erreurs fatales, les erreurs graves, les avertissements, etc. Différents niveaux d'erreur seront traités différemment au moment de l'exécution. Les erreurs fatales arrêteront directement l'exécution du script, tandis que les erreurs et avertissements graves généreront des messages d'erreur mais n'arrêteront pas l'exécution du script. Différentes constantes d'erreur sont définies en PHP, qui correspondent à différents niveaux d'erreur. Voici les constantes d'erreur PHP courantes et leurs niveaux d'erreur correspondants :

  1. E_ERROR Erreur fatale
  2. E_WARNING Erreur non fatale
  3. E_PARSE Erreur d'analyse
  4. E_NOTICE Erreur de note
  5. E_DEPRECATED Erreur de dépréciation
  6. E_STRICT Stric t erreur

2 . Gestion des erreurs

PHP fournit certaines fonctions pour gérer les erreurs, telles que la fonction de journal des erreurs error_log(), la fonction d'exception throw(), la fonction d'affichage des messages d'erreur error_reporting(), etc. Bien entendu, nous pouvons également personnaliser les fonctions de gestion des erreurs. Ce qui suit est une brève introduction à l’utilisation de ces fonctions.

(1) La fonction error_log()

error_log() est utilisée pour enregistrer les informations d'erreur dans le fichier journal des erreurs du serveur, tel que le fichier error_log d'Apache. Cette fonction a trois paramètres :

bool error_log ( string $message [, int $message_type = 0 [, string $destination [, string $extra_headers ]]] )
Copier après la connexion

$message est le message d'erreur, $message_type est le niveau d'erreur (la valeur par défaut est 0, qui est ignorée), $destination est le chemin du fichier journal des erreurs et $extra_headers peut définir des informations d'en-tête supplémentaires. pour le courrier électronique.

(2) La fonction throw()

throw() est utilisée pour lever une exception, c'est-à-dire pour arrêter directement l'exécution du programme et afficher un message d'erreur. Cette fonction a un paramètre, qui est une instance de l'objet exception.

(3) La fonction error_reporting()

error_reporting() est utilisée pour définir le niveau de rapport d'erreurs. Elle a un paramètre, qui est une constante d'erreur ou le résultat de l'opération OU au niveau du bit de plusieurs constantes d'erreur.

Voici un exemple simple montrant comment utiliser la fonction error_reporting() pour ignorer les erreurs de niveau E_NOTICE :

error_reporting(E_ALL & ~E_NOTICE);
Copier après la connexion

En effectuant une opération ET au niveau du bit sur E_ALL avec ~E_NOTICE, vous pouvez obtenir tous les niveaux d'erreur sauf E_NOTICE. Après ce paramétrage, le script PHP ignorera les erreurs de niveau E_NOTICE.

(4) Fonction de gestion des erreurs personnalisée

PHP nous permet de personnaliser les fonctions de gestion des erreurs, afin que nous puissions personnaliser le chemin du fichier journal des erreurs, la méthode de sortie des erreurs, etc. Nous devons utiliser la fonction set_error_handler pour définir la fonction de gestion des erreurs. Cette fonction a un paramètre, qui est le nom de la fonction de traitement personnalisée.

Voici un exemple simple :

function custom_error_handler($errno, $errstr, $errfile, $errline) {
    error_log($errstr . "in" . $errfile . " on line " . $errline);
    return true;
}

set_error_handler("custom_error_handler");
Copier après la connexion

Cette fonction de gestion des erreurs personnalisée écrit les informations sur l'erreur dans le fichier journal des erreurs du serveur et renvoie une valeur vraie, indiquant que l'erreur a été traitée.

3. Ignorer les erreurs

Voyons maintenant comment ignorer les erreurs en PHP. La méthode est très simple, utilisez simplement le symbole @ pour ignorer les erreurs que vous ne souhaitez pas gérer. Par exemple :

$count = @file_get_contents("file.txt");
Copier après la connexion

Cette instruction lira le contenu du fichier "file.txt" et l'attribuera à la variable $count Cependant, si une erreur se produit lors de la lecture du fichier, telle que le fichier n'existe pas ou n'est pas. avoir l'autorisation de lire, etc., puis ajouter. Vous pouvez ignorer l'erreur en ajoutant le symbole @ et autoriser le script à continuer de s'exécuter.

Il convient de noter que l'utilisation du symbole @ pour ignorer les erreurs rendra le code moins sûr, car cela peut conduire à des erreurs difficiles à trouver, telles que des variables non initialisées ou des paramètres de fonction incorrects, etc. Par conséquent, vous ne devez utiliser le symbole @ que si vous êtes sûr que ces erreurs peuvent être ignorées.

4. Résumé

En PHP, la façon d'ignorer les erreurs est très simple, il suffit d'utiliser le symbole @. Mais l'utilisation du symbole @ peut provoquer des erreurs difficiles à trouver, nous devrions donc essayer d'éviter de l'utiliser. Si vous souhaitez ignorer les erreurs, vous devez utiliser la fonction set_error_handler() pour personnaliser la fonction de gestion des erreurs, ou utiliser la fonction error_reporting() pour définir le niveau de rapport d'erreurs. Cela nous permet de gérer les erreurs dans les programmes PHP de manière plus flexible et plus sûre.

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 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

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Quelles sont les meilleures pratiques pour la déduplication des tableaux PHP Quelles sont les meilleures pratiques pour la déduplication des tableaux PHP Mar 03, 2025 pm 04:41 PM

Quelles sont les meilleures pratiques pour la déduplication des tableaux PHP

La déduplication PHP Array peut-elle profiter de l'unicité du nom clé? La déduplication PHP Array peut-elle profiter de l'unicité du nom clé? Mar 03, 2025 pm 04:51 PM

La déduplication PHP Array peut-elle profiter de l'unicité du nom clé?

Quelles sont les dernières normes de codage PHP et les meilleures pratiques? Quelles sont les dernières normes de codage PHP et les meilleures pratiques? Mar 10, 2025 pm 06:16 PM

Quelles sont les dernières normes de codage PHP et les meilleures pratiques?

Comment puis-je travailler avec les extensions de PHP et PECL? Comment puis-je travailler avec les extensions de PHP et PECL? Mar 10, 2025 pm 06:12 PM

Comment puis-je travailler avec les extensions de PHP et PECL?

Comment implémenter les files d'attente de messages (Rabbitmq, Redis) dans PHP? Comment implémenter les files d'attente de messages (Rabbitmq, Redis) dans PHP? Mar 10, 2025 pm 06:15 PM

Comment implémenter les files d'attente de messages (Rabbitmq, Redis) dans PHP?

La déduplication du tableau PHP doit-elle être prise en compte pour les pertes de performance? La déduplication du tableau PHP doit-elle être prise en compte pour les pertes de performance? Mar 03, 2025 pm 04:47 PM

La déduplication du tableau PHP doit-elle être prise en compte pour les pertes de performance?

Quelles sont les techniques d'optimisation pour la déduplication des tableaux PHP Quelles sont les techniques d'optimisation pour la déduplication des tableaux PHP Mar 03, 2025 pm 04:50 PM

Quelles sont les techniques d'optimisation pour la déduplication des tableaux PHP

Comment utiliser la réflexion pour analyser et manipuler le code PHP? Comment utiliser la réflexion pour analyser et manipuler le code PHP? Mar 10, 2025 pm 06:12 PM

Comment utiliser la réflexion pour analyser et manipuler le code PHP?

See all articles