Manuel PHP

Opérateur de contrôle d'erreur

PHP supporte un opérateur de contrôle d'erreur : c'est @. Lorsque cet opérateur est ajouté en préfixe d'une expression PHP, les messages d'erreur qui peuvent être générés par cette expression seront ignorés.

Si l'option track_errors est activée, les messages d'erreurs générés par une expression seront sauvés dans la variable globale $php_errormsg. Cette variable sera écrasée à chaque erreur. Il faut alors la surveiller souvent pour pouvoir l'utiliser.

  1. <?php
  2. /* Erreur intentionnelle (le fichier n'existe pas): */  
  3. $mon_fichier = @file ('non_persistent_file') or 
  4.    die ("Impossible d'ouvrir le fichier : L'erreur est : '$php_errormsg'");  
  5.  
  6. // Cela fonctionne avec n'importe quelle expression, pas seulement les fonctions
  7. $value = @$cache[$key];  
  8. // la ligne ci-dessus n'affichera pas d'alerte si la clé $key du tableau n'existe pas
  9.  
  10. ?> 

Note: L'opérateur @ ne fonctionne qu'avec les expressions. La règle générale de fonctionnement est la suivante : si vous pouvez prendre la valeur de quelque chose, vous pouvez le préfixer avec @. Par exemple, vous pouvez ajouter @ aux variables, fonctions, à include(), aux constantes, etc. Vous ne pourrez pas le faire avec des éléments de langage tels que les classes, if et foreach, etc.

Voir aussi error_reporting() et la section sur la gestion d'erreurs.

Avertissement

En fait, l'opérateur "@" va aussi désactiver les rapports d'erreurs critiques, qui stoppent l'exécution du script. Entre autres, si vous utilisez "@" pour supprimer les erreurs de certaines fonctions, et que cette fonction n'existe pas, ou qu'elle a été mal orthographiée, vous n'aurez aucune indication.


Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Bretagne - php - Moto