05-03-2010, 11:36 AM
En fait, le PHP reprend les exceptions comme un acquis de la POO.
Tu dois plutôt chercher à comprendre ce que signifie une exception en POO plutôt qu'en PHP.
Il faut donc la voir dans une utilisation industrielle/professionnelle.
Tout d'abord, une exception se propage de l'objet appellé à l'objet appellant en remontant la chaîne d'appellant jusqu'à être interceptée par un catch.
Ce qui oblige à prendre en compte les exceptions, et donc les erreurs, dans un domaine professionnel sinon ton programme s'arrête.
Une fonction qui retourne une erreur peut être ignorée, vous mêmes est-ce que vous testez systématiquement le retour des fonctions PHP ?
Avec les exceptions, il y a à la fin l'arrêt de l'exécution si elle n'est pas prise en compte, ceci afin d'éviter d'endommager les données.
Maintenant, le catch permet d'intercepter l'exception, et d'éviter l'arrêt brutal, mais il permet aussi d'apporter un traitement personnalisé en fonction de l'exception.
Toujours dans un domaine industriel, nous avons un programme qui gère des lots séquentiellement, un des éléments du lot est considéré comme erroné et une exception est levée.
Selon la non-conformité de l'élement on peut décider si on continue à traiter le lot en cours mais en rejetant seulement l'élément, ou alors rejeter tous le lot et passer au lot suivant.
Si jamais on tombe sur une non-conformité totalement inconnue, alors on peut ne pas attraper l'exception qui arrêtera la chaîne de traitement et obligera un utilisateur humain à venir constater
Donc pour résumé, par rapport à des tests standard et les codes erreurs, l'exception :
- met fin au traitement actuel en cours,
- peut permettre la reprise du traitement si le catch le permet
- met fin totalement au traitement si elle n'est pas prise en compte
Tu dois plutôt chercher à comprendre ce que signifie une exception en POO plutôt qu'en PHP.
Il faut donc la voir dans une utilisation industrielle/professionnelle.
Tout d'abord, une exception se propage de l'objet appellé à l'objet appellant en remontant la chaîne d'appellant jusqu'à être interceptée par un catch.
Ce qui oblige à prendre en compte les exceptions, et donc les erreurs, dans un domaine professionnel sinon ton programme s'arrête.
Une fonction qui retourne une erreur peut être ignorée, vous mêmes est-ce que vous testez systématiquement le retour des fonctions PHP ?
Avec les exceptions, il y a à la fin l'arrêt de l'exécution si elle n'est pas prise en compte, ceci afin d'éviter d'endommager les données.
Maintenant, le catch permet d'intercepter l'exception, et d'éviter l'arrêt brutal, mais il permet aussi d'apporter un traitement personnalisé en fonction de l'exception.
Toujours dans un domaine industriel, nous avons un programme qui gère des lots séquentiellement, un des éléments du lot est considéré comme erroné et une exception est levée.
Selon la non-conformité de l'élement on peut décider si on continue à traiter le lot en cours mais en rejetant seulement l'élément, ou alors rejeter tous le lot et passer au lot suivant.
Si jamais on tombe sur une non-conformité totalement inconnue, alors on peut ne pas attraper l'exception qui arrêtera la chaîne de traitement et obligera un utilisateur humain à venir constater
Donc pour résumé, par rapport à des tests standard et les codes erreurs, l'exception :
- met fin au traitement actuel en cours,
- peut permettre la reprise du traitement si le catch le permet
- met fin totalement au traitement si elle n'est pas prise en compte