04-09-2009, 11:06 PM
L'intérêt des exceptions, c'est qu'on peut les distinguer les unes des autres. Un die c'est un die, on ne peut rien en faire...
Fondamentalement "die('truc')" ou "throw new Exception('truc')" font exactement la même chose (arrêter là l'exécution, avec le message "truc"), sauf que le premier n'offre aucune souplesse alors que le second peut offrir d'autres possibilités.
Idéalement on aura dans le contrôleur principal (point d'entrée unique de l'application) un catch général qui récupère les exceptions qui n'ont pas été catchées avant, et qui en fait quelque chose, contrairement à un die() dont on ne peut strictement rien faire :
Fondamentalement "die('truc')" ou "throw new Exception('truc')" font exactement la même chose (arrêter là l'exécution, avec le message "truc"), sauf que le premier n'offre aucune souplesse alors que le second peut offrir d'autres possibilités.
Idéalement on aura dans le contrôleur principal (point d'entrée unique de l'application) un catch général qui récupère les exceptions qui n'ont pas été catchées avant, et qui en fait quelque chose, contrairement à un die() dont on ne peut strictement rien faire :
Code PHP :
<?php
try
{
// processus général
main();
}
catch (Exception $e)
{
// logger l'erreur $e->getException()
// accompagne éventuellemen des détails (trace d'exécution) avec $e->getTraceAsString()
// envoyer un mail
// renvoyer vers une page d'erreur générique
}
Note pour ceux que ça énerve de se trimballer des warnings et des fatal error alors que les exceptions existent, vous pouvez utiliser ce petit snippet : http://fr2.php.net/manual/fr/class.error....php#89132