web:php:exceptions
Table des matières
Exceptions en PHP
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 :
try { throw new Exception('message for this exception'); } catch (Exception $e) { // somehow handle the error here }
Exceptions personnalisées
La classe Exception
peut être étendue pour définir nos propres exceptions
class CustomException extends Exception {}
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.
- LogicException : erreur de logique dans le programme, un bug à corriger dans le code
- BadFunctionCallException / BadMethodCallException : erreur d'appel (fonction/méthode inexistante, ou appelée avec les mauvais paramètres).
- DomainException : valeur “hors domaine” (si la valeur d'un paramètre respecte le type de variable mais pas le domaine de valeurs autorisées)
- InvalidArgumentException : valeur ne respectant pas le type attendu
- LengthException : valeur ne respectant pas la longueur attendue (chaine de caractère essentiellement ?)
- OutOfRangeException : intermédiaire batard entre DomainException (logic) et OutOfBoundsException (runtime) ?
- RuntimeException : erreur remontée à l'exécution
- OutOfBoundsException : appel à un index/clé (de tableau, par exemple) inexistant dans le contexte
- OverflowException : erreur à l'insertion d'un élément dans un conteneur plein
- RangeException : valeur “hors domaine” pour un domaine contextuel (spécifique à cette exécution)
- UnderflowException : erreur à l'utilisation d'un conteneur s'il est vide
- UnexpectedValueException : erreur au retour d'une fonction si la valeur de retour n'est pas gérée
web/php/exceptions.txt · Dernière modification : le 05/01/2015 à 11:40 de Yosko