Dans le domaine du haut niveau, les exceptions ; dans le domaine du bas niveau, les codes d'erreur.
Le comportement par défaut d'une exception est de dérouler la pile et d'arrêter le programme, si j'écris un script an et que je vais chercher une clé qui n'est pas dans un dictionnaire, c'est probablement une erreur, et je veux que le programme s'arrête et me fasse savoir tout cela.
Si, cependant, j'écris un morceau de code que je doit savoir le comportement de dans toutes les situations possibles, alors je veux des codes d'erreur. Sinon, je dois connaître toutes les exceptions qui peuvent être déclenchées par chaque ligne de ma fonction pour savoir ce qu'elle fera. L'exception qui a cloué au sol une compagnie aérienne pour avoir une idée de la difficulté de la tâche). Il est fastidieux et difficile d'écrire un code qui réagit de manière appropriée à chaque situation (y compris les situations malheureuses), mais c'est parce qu'écrire un code sans erreur est fastidieux et difficile, et non parce que vous passez des codes d'erreur.
Les deux sites Raymond Chen y Joel ont présenté des arguments éloquents contre l'utilisation d'exceptions pour tout.