introduction
Au cours du développement, la rencontre d'erreurs et des exceptions est presque inévitable. Pour les développeurs PHP, le traitement des erreurs et des exceptions est une étape critique pour assurer la stabilité et la fiabilité du code. Cet article vous guidera sur la façon de capturer et de gérer efficacement les erreurs et les exceptions en PHP et de fournir des informations de débogage utiles.
1. Introduction aux erreurs et exceptions
En PHP, les erreurs et les exceptions sont deux concepts différents. Les erreurs sont généralement causées par des interprètes ou des systèmes PHP, tels que les erreurs de syntaxe ou les débordements de mémoire, tandis que les exceptions sont souvent causées par des problèmes logiques dans le code, tels que l'utilisation de variables non définies ou la tentative d'ouvrir un fichier inexistant. Lorsque ces problèmes se produisent, PHP tente d'exécuter l'erreur ou le gestionnaire d'exceptions correspondant.
2. Gestion des erreurs
Niveau de rapport d'erreur
PHP fournit différents niveaux de rapport d'erreur et les développeurs peuvent choisir les messages d'erreur à afficher au besoin. Les niveaux de rapport d'erreur courants sont:
- E_ERROR: Erreur fatale provoquant la fin du script.
- E_WARNING: Erreur d'avertissement, le script ne se terminera pas.
- E_NOTICE: invite normale, comme la variable non initialisée, etc.
- E_ALL: montre toutes les erreurs, avertissements et invites.
Utilisez la fonction error_reporting () pour définir le niveau d'erreur. L'exemple de code est le suivant:
<?php
// Afficher toutes les erreurs、Avertissement et informations rapides
error_reporting(E_ALL);
?>
Gestionnaire d'erreur personnalisé
Dans PHP, vous pouvez personnaliser les gestionnaires d'erreurs au lieu de la méthode de traitement par défaut. Définissez une fonction de gestion des erreurs personnalisée avec la fonction `set_error_handler ()`, ce qui suit est l'exemple de code:
<?php
// Fonctions de traitement des erreurs personnalisées
function customError($errno, $errstr, $errfile, $errline) {
echo "<b> Erreur: [$ errno] $ errstr - $ errfile: $ errline ";
}
// Définir le gestionnaire d'erreur personnalisé set_error_handler ("CustomError");
?>
De cette façon, vous pouvez effectuer différentes logiques de traitement en fonction de différents niveaux et types d'erreurs, tels que la journalisation ou l'envoi de notifications par e-mail.
3. Manipulation des exceptions
faire une exception
En PHP, vous pouvez utiliser la déclaration «Throw» pour lancer des exceptions. Vous pouvez lancer une classe d'exception intégrée PHP, ou vous pouvez personnaliser la classe d'exception. Voici l'exemple de code pour lancer une exception:
<?php
// Jeter une exception définie
throw new Exception("Something went wrong.");
// Personnalisez la classe d'exception et jetez-la
class CustomException extends Exception {
public function __construct($message, $code = 0, Throwable $previous = null) {
parent::__construct($message, $code, $previous);
}
}
throw new CustomException("Custom error occurred.");
?>
Catch Exceptions
Dans PHP, vous pouvez utiliser l'instruction «Try ... Catch» pour attraper et gérer les exceptions. Code «Essayez» qui peut se produire dans le bloc de code, tandis que le bloc de code «Catch» contient la logique de traitement lorsque l'exception se produit. Les exemples sont les suivants:
<?php
try {
// Exécuter du code qui peut lancer des exceptions
throw new Exception("Something went wrong.");
} catch (Exception $e) {
// Gestion des exceptions
echo "Caught exception: " . $e-> getMessage ();
}
?>
Dans le bloc Catch Code, vous pouvez obtenir des informations d'exception détaillées via la méthode GetMessage () de l'objet d'exception.
Captures d'exception multiples
PHP prend en charge l'utilisation de plusieurs blocs de code «Catch» pour attraper différents types d'exceptions. Les exemples sont les suivants:
<?php
try {
throw new Exception("Something went wrong.");
} catch (CustomException $e) {
// Gérer les exceptions personnalisées
echo "Caught custom exception: " . $e-> getMessage ();
} catch (exception $ e) {
// gérer d'autres types d'exceptions Echo "Exception capturée:". $ e-> getMessage ();
}
?>
Dans ce code, si une exception de type gardomexception est lancée, le programme entrera le premier bloc de code de capture . S'il s'agit d'une exception des autres types, le programme entrera le deuxième bloc de code de capture .
4. meilleures pratiques pour l'erreur et la gestion des exceptions
- Allumez les rapports d'erreurs: dans l'environnement de développement, toutes les erreurs et avertissements doivent être activés pour détecter et résoudre les problèmes potentiels en temps opportun. Dans les environnements de production, il est recommandé d'afficher uniquement les messages d'erreur sérieux, qui peuvent être réalisés en définissant `error_reportting (e_all & ~ e_notice) '.
- L'utilisation des gestionnaires d'erreurs personnalisés: les gestionnaires d'erreurs personnalisés peuvent aider à mieux suivre et enregistrer les erreurs, en particulier les informations d'erreur de journalisation dans les journaux, est un moyen important de résoudre les problèmes.
- Jetez des exceptions significatives: lorsque certains problèmes sont prévisibles, lancez des classes d'exception significatives pour aider à exprimer la cause profonde de l'exception et faciliter les mesures de gestion appropriées lors de la capture d'exceptions.
en conclusion
L'erreur et la gestion des exceptions sont des parties clés du développement de PHP. En plaçant les rapports d'erreur rationnellement et en utilisant des gestionnaires d'erreurs personnalisés, nous pouvons gérer et gérer les erreurs plus efficacement. Dans le même temps, en lançant et en prenant correctement les exceptions, il est possible de s'assurer que le programme peut fournir des informations d'erreur claires lorsque des problèmes se produisent, améliorant ainsi la stabilité et la fiabilité du code. Espérons que les meilleures pratiques fournies dans cet article peuvent vous aider à mieux gérer les erreurs et la gestion des exceptions dans le développement de PHP.