Chapitre 19 : Gestion des erreurs

Maîtrisez la gestion des erreurs en PHP avec ce guide complet sur le débogage, les exceptions et les bonnes pratiques de journalisation.

1. Introduction

Les erreurs peuvent survenir à tout moment dans un script PHP : fichiers manquants, mauvaises saisies, division par zéro, etc. Savoir détecter, gérer et afficher ces erreurs proprement est crucial pour le débogage et la sécurité.

2. Types d'erreurs

  • Notice : avertissement léger (variable non initialisée)
  • Warning : erreur non bloquante (fichier introuvable)
  • Error : erreur fatale (interrompt le script)
  • Exception : levée manuellement avec throw

3. Affichage des erreurs

<?php
  ini_set("display_errors", 1);
  error_reporting(E_ALL);
?>
Important : À utiliser en développement uniquement (jamais en production).

4. Enregistrer les erreurs dans un fichier

<?php
  ini_set("log_errors", 1);
  ini_set("error_log", "logs/erreurs.log");
?>

Pratique pour garder une trace des erreurs sans les afficher à l'utilisateur.

5. Déboguer avec var_dump() et print_r()

<?php
  $produit = ["nom" => "Clavier", "prix" => 29.99];
  var_dump($produit); // Affiche structure et type
  print_r($produit); // Affiche lisiblement le contenu
?>

Idéal pour inspecter des tableaux ou des objets.

6. Gérer les erreurs avec try/catch

Les exceptions permettent de capturer des erreurs critiques sans interrompre le script :

<?php
  try {
    if (!file_exists("fichier.txt")) {
      throw new Exception("Fichier introuvable !");
    }
    echo file_get_contents("fichier.txt");
  } catch (Exception $e) {
    echo "Erreur : " . $e->getMessage();
  }
?>

7. Créer ses propres exceptions

<?php
  class MonException extends Exception {}

  try {
    throw new MonException("Erreur personnalisée");
  } catch (MonException $e) {
    echo $e->getMessage();
  }
?>

8. À retenir

  • error_reporting() et ini_set() gèrent l'affichage des erreurs
  • var_dump() et print_r() sont utiles pour déboguer
  • try / catch permet de capturer les exceptions
  • On peut créer ses propres classes d'erreurs personnalisées
  • Les erreurs doivent être journalisées en production, mais jamais affichées

9. Exercices proposés

  1. Afficher proprement une erreur si un fichier n'existe pas.
  2. Créer une fonction qui lève une exception si une variable est vide.
  3. Créer une classe d'exception personnalisée et l'utiliser avec throw.

10. Ce que vous apprendrez ensuite

Dans le chapitre 20, vous verrez comment inclure et organiser plusieurs fichiers PHP à l'aide de include, require, et les bonnes pratiques pour structurer vos projets.