Les exceptions :
Si on écrie ce code PHP :
#?php
function divide($dividend, $divisor) {
if($divisor == 0) {
throw new Exception("Ya un Pb de zero");
}
return $dividend / $divisor;
}
echo divide(5, 0);
?>
On récupère alors cette erreur : Fatal error: Uncaught Exception: Ya un Pb de zero in /home/fialairediu/www/W3School_PHP/25_Exception1.php:10
Stack trace: #0 /home/fialairediu/www/W3School_PHP/25_Exception1.php(15): divide(5, 0) #1 {main}
thrown in /home/fialairediu/www/W3School_PHP/25_Exception1.php on line 10
Le code suivant permet d'éviter l'erreur fatale :
#?php
function divide($dividend, $divisor) {
if($divisor == 0) {
throw new Exception("Ya un Pb de zero"); Attention, ce n'est pas parce qu'on cré un 'try' qu'on peut se passer de créer l'exception
}
return $dividend / $divisor;
}
try { Le 'try' va donc essayer de lancer l'action
echo divide(5, 0);
} catch(Exception $e) { Si le 'try' ne fonctionne pas, on intercepte l'exception qu'on glisse dans une $variable
echo "Désolé, impossible de diviser.";
}
?>
Résultat :
Désolé, impossible de diviser.
---------------------------------------------------------
Source : https://www.w3schools.com/php/php_exceptions.asp