La commande throw
La commande throw est utilisée pour lever explicitement une exception en PHP.
Elle accepte un paramètre - un objet exception, qui doit être une instance d'une classe,
héritée de la classe de base Exception. Lors de l'appel de cette fonction, l'exécution du code
courant est immédiatement arrêtée, et PHP tente de trouver le bloc catch correspondant pour traiter l'exception.
Syntaxe
throw new ExceptionClass(message, code, previous);
Exemple
Un exemple simple de génération d'exception :
<?php
$age = -5;
if ($age < 0) {
throw new Exception('L\'âge ne peut pas être négatif');
}
?>
Résultat de l'exécution du code :
Fatal error: Uncaught Exception: L'âge ne peut pas être négatif
Exemple
Exemple avec gestion d'exception :
<?php
try {
$res = 10 / 0;
if (is_infinite($res)) {
throw new Exception('Division par zéro');
}
} catch (Exception $e) {
echo 'Erreur : ' . $e->getMessage();
}
?>
Résultat de l'exécution du code :
'Erreur : Division par zéro'
Exemple
Utilisation d'une exception personnalisée :
<?php
class MyCustomException extends Exception {}
try {
throw new MyCustomException('Message d\'erreur personnalisé');
} catch (MyCustomException $e) {
echo 'Erreur personnalisée capturée : ' . $e->getMessage();
}
?>
Résultat de l'exécution du code :
'Erreur personnalisée capturée : Message d\'erreur personnalisé'