2011-06-17 4 views
4

J'ai toujours la méthode "return status code" pour gérer les erreurs. Il semble que les exceptions sont aujourd'hui la meilleure façon de gérer les erreurs.
Mais sont-ils vraiment le meilleur moyen? J'ai lu des choses comme exceptions are worst than GoToQuelle est la bonne façon d'utiliser les exceptions avec PHP?

Connaissez-vous de bons articles/articles/livres sur les exceptions et la gestion des erreurs?

+0

Cette rubrique apparaît de temps en temps. Vous trouverez quelques réponses éclairantes dans la recherche http://stackoverflow.com/search?q=php%20exceptions%20vs%20errors et probablement quelques explications qui sont pertinentes pour votre cas (= il n'y a pas de moyen correct pour tout). – mario

+0

Cette question serait-elle mieux adaptée aux [Programmeurs] (http://programmers.stackexchange.com/), ou est-elle encore trop générale? –

Répondre

3

Si vous programmez un objet orienté, les exceptions sont peut-être meilleures pour vous. Si vous écrivez procédural, les valeurs de retour sont le meilleur moyen. Cela dépend de votre style de codage, etc.

+2

parce que rien n'est pire que l'inconsistance. Les exceptions sont un modèle orienté objet, les codes de retour proviennent de la programmation procédurale. – levu

2

Les exceptions sont environ 10000x plus lentes que le renvoi d'un code d'état/d'erreur selon le langage de programmation. Cela est dû à toutes les informations de la pile qui sont suivies. C'est le mauvais.

En général, vous n'avez jamais besoin d'utiliser des exceptions. En fait, à un moment donné, la seule chose qui existait était les codes de retour. La bonne chose à propos des exceptions est qu'elles ne laisseront pas un programme continuer à moins d'être traitées correctement. Au lieu de cela, le programme se bloque. Donc, en gros, si vous oubliez de traiter les messages d'état ou si vous craignez que d'autres ne vérifient pas les codes de retour de vos fonctions, les exceptions arrêtent le programme et vous permettent de le réparer. Bien que j'ai vu beaucoup de programmeurs inexpérimentés attraper l'exception, ne rien faire à ce sujet, et continuer ensuite. Cela revient à ignorer le code retour d'une fonction.

Une autre bonne chose à propos des exceptions est qu'elles "éclatent" automatiquement. Au lieu d'avoir à renvoyer des codes d'erreur via une longue chaîne de fonctions, vous pouvez configurer votre try try au niveau le plus élevé et gérer toute erreur de manière appropriée (en supposant que vous ne vouliez rien d'autre se produire entre les deux). Par exemple, si quelque chose ne va pas, affichez une page d'erreur.

Questions connexes