Prochaine révision | Révision précédente |
web:php:exceptions [le 26/11/2013 à 15:50] – créée Yosko | web:php:exceptions [le 05/01/2015 à 11:40] (Version actuelle) – Exceptions SPL Yosko |
---|
====== Exceptions en PHP ====== | ====== Exceptions en PHP ====== |
| |
La gestion d'exception en PHP se fait comme dans beaucoup de la manière suivante : | Petit rappel de base sur les exceptions en PHP |
| |
| ===== Base ===== |
| |
| La gestion d'exception en PHP se fait comme dans beaucoup de langages de la manière suivante : |
| |
<code php> | <code php> |
} | } |
</code> | </code> |
| |
| ===== Exceptions personnalisées ===== |
| |
| La classe ''Exception'' peut être étendue pour définir nos propres exceptions |
| |
| <code php> |
| class CustomException extends Exception {} |
| </code> |
| |
| ===== Exceptions SPL ===== |
| La SPL (Standard PHP Library) propose des exceptions "génériques" un peu plus précises que ''%%Exception%%'', permettant de catégoriser les erreurs sans avoir à déclarer ses propres exceptions ou à parser bêtement les messages d'exception. |
| * [[http://us3.php.net/manual/en/class.logicexception.php|LogicException]] : erreur de logique dans le programme, un bug à corriger dans le code |
| * [[http://us3.php.net/manual/en/class.badfunctioncallexception.php|BadFunctionCallException]] / [[http://us3.php.net/manual/en/class.badmethodcallexception.php|BadMethodCallException]] : erreur d'appel (fonction/méthode inexistante, ou appelée avec les mauvais paramètres). |
| * [[http://us3.php.net/manual/en/class.domainexception.php|DomainException]] : valeur "hors domaine" (si la valeur d'un paramètre respecte le type de variable mais pas le domaine de valeurs autorisées) |
| * [[http://us3.php.net/manual/en/class.invalidargumentexception.php|InvalidArgumentException]] : valeur ne respectant pas le type attendu |
| * [[http://us3.php.net/manual/en/class.lengthexception.php|LengthException]] : valeur ne respectant pas la longueur attendue (chaine de caractère essentiellement ?) |
| * [[http://us3.php.net/manual/en/class.outofrangeexception.php|OutOfRangeException]] : intermédiaire batard entre DomainException (logic) et OutOfBoundsException (runtime) ? |
| * [[http://us3.php.net/manual/en/class.runtimeexception.php|RuntimeException]] : erreur remontée à l'exécution |
| * [[http://us3.php.net/manual/en/class.outofboundsexception.php|OutOfBoundsException]] : appel à un index/clé (de tableau, par exemple) inexistant dans le contexte |
| * [[http://us3.php.net/manual/en/class.overflowexception.php|OverflowException]] : erreur à l'insertion d'un élément dans un conteneur plein |
| * [[http://us3.php.net/manual/en/class.rangeexception.php|RangeException]] : valeur "hors domaine" pour un domaine contextuel (spécifique à cette exécution) |
| * [[http://us3.php.net/manual/en/class.underflowexception.php|UnderflowException]] : erreur à l'utilisation d'un conteneur s'il est vide |
| * [[http://us3.php.net/manual/en/class.unexpectedvalueexception.php|UnexpectedValueException]] : erreur au retour d'une fonction si la valeur de retour n'est pas gérée |
| |