Comment gérer les erreurs en PHP ?

王林
Libérer: 2023-05-12 08:06:01
original
810 Les gens l'ont consulté

PHP est un langage de programmation couramment utilisé, particulièrement adapté au développement Web. Les développeurs rencontreront inévitablement diverses erreurs et exceptions lors de l'écriture du code. Un bon mécanisme de gestion des erreurs contribue à améliorer la robustesse et la maintenabilité du code et garantit la stabilité et la sécurité du code. Cet article explique comment gérer les erreurs en PHP.

  1. Niveaux d'erreur

Il existe plusieurs niveaux d'erreur en PHP Vous pouvez contrôler quelles informations d'erreur seront enregistrées et affichées en définissant le niveau d'erreur.

  • E_ERROR : Erreur fatale qui entraînera l'arrêt de l'exécution du script.
  • E_WARNING : Message d'avertissement non fatal, le script continuera à s'exécuter.
  • E_NOTICE : fournit des informations d'avertissement pour les situations susceptibles de causer des problèmes, et le script continuera à s'exécuter.
  • E_STRICT : fournit des informations d'avertissement sur la compatibilité et la standardisation pour l'amélioration de la qualité du code.
  • E_DEPRECATED : fournit des informations d'avertissement concernant la suppression obsolète et future d'une fonctionnalité.

Pour contrôler ces niveaux d'erreur, vous pouvez utiliser la fonction error_reporting(). Par exemple, le code suivant est défini pour afficher uniquement les messages d'erreur de niveau E_ERROR et E_WARNING :

<?php
error_reporting(E_ERROR | E_WARNING);
?>
Copier après la connexion
  1. Fonctions de gestion des erreurs

PHP fournit une série de fonctions pour gérer différents types de messages d'erreur. Ces fonctions seront définies comme fonctions de gestion des erreurs pour gérer les niveaux d'erreur correspondants.

  • set_error_handler() : définissez une fonction de gestion des erreurs personnalisée.
  • set_exception_handler() : définissez une fonction de gestion des exceptions personnalisée.
  • register_shutdown_function() : enregistre une fonction à appeler automatiquement lorsque l'exécution du script est terminée.

Ce qui suit est un exemple de code pour montrer comment implémenter une fonction de gestion des erreurs personnalisée :

<?php
function custom_errorhandler($errno, $errstr, $errfile, $errline) {
    echo "Error: [$errno] $errstr - $errfile:$errline";
}

set_error_handler("custom_errorhandler");

// 以下代码会产生一个错误
$test = 2 / 0;
?>
Copier après la connexion

Le code ci-dessus affichera :

Error: [2] Division by zero - /var/www/example.php:7
Copier après la connexion

La fonction error_handler() est personnalisée ici, qui sera appelée lorsqu'une erreur se produit pendant exécution du script.

  1. Gestion des exceptions

PHP prend également en charge les exceptions, et la gestion des exceptions peut être réalisée via les mots-clés try, catch et throw.

Le code dans les blocs try peut générer des exceptions. Si le code du bloc try lève une exception, le reste du code du bloc ne sera pas exécuté, mais passera immédiatement au bloc catch. Le bloc catch tentera d'intercepter l'exception levée et de la gérer en conséquence.

Si aucune exception n'est interceptée, l'exécution du code après le bloc catch continue.

Ce qui suit est un exemple de code pour une gestion simple des exceptions :

<?php
function divide($a, $b) {
    if ($b == 0) {
        throw new Exception('Cannot divide by zero');
    } else {
        return $a / $b;
    }
}

try {
    echo divide(2, 0);
} catch (Exception $e) {
    echo 'Caught exception: ', $e->getMessage();
}
?>
Copier après la connexion

Sortie :

Caught exception: Cannot divide by zero
Copier après la connexion

Dans le code ci-dessus, une exception est levée à partir de la fonction Divide(). La fonction Divide() est appelée dans le bloc de code try. Parce que l'entrée $b=0, une exception est levée. Attrapez l'exception dans le bloc de code catch et affichez les informations.

  1. Logging

Afin de mieux suivre et résoudre les erreurs, la journalisation de l'application est une partie importante. Vous pouvez utiliser la fonction error_log() intégrée de PHP pour enregistrer les informations d'erreur dans un fichier. Le code est le suivant :

<?php
function custom_errorhandler($errno, $errstr, $errfile, $errline) {
    $log_message = "Error: [$errno] $errstr - $errfile:$errline";
    error_log($log_message, 3, "error.log");
}

set_error_handler("custom_errorhandler");

// 以下代码会产生一个错误
$test = 2 / 0;
?>
Copier après la connexion

Le code ci-dessus enregistrera les informations d'erreur dans le fichier error.log.

  1. Conclusion

La gestion des erreurs est une partie très importante de tout langage de programmation. PHP propose diverses façons de gérer les erreurs, notamment la définition de niveaux d'erreur, la définition de fonctions de gestion des erreurs personnalisées, l'utilisation de la gestion et de la journalisation des exceptions, etc. Une gestion correcte des erreurs peut améliorer la stabilité, la robustesse et la maintenabilité du code, garantissant ainsi la fiabilité et la sécurité de l'application.

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