Dernièrement, j'ai eu du mal à comprendre quelle est la bonne quantité de vérification et quelles sont les bonnes méthodes.
J'ai quelques questions à ce sujet:
Quelle est la bonne façon de vérifier les erreurs (mauvaise entrée, mauvais états, etc.)? Est-il préférable de vérifier explicitement les erreurs ou d'utiliser des fonctions comme les assertions qui peuvent être optimisées à partir de votre code final? J'ai l'impression de vérifier explicitement l'encombrement d'un programme avec beaucoup de code supplémentaire qui ne devrait pas être exécuté dans la plupart des situations - et sans parler de la plupart des erreurs se terminent par un échec d'abandon / sortie. Pourquoi encombrer une fonction avec des vérifications explicites juste pour abandonner? J'ai cherché des assertions contre une vérification explicite des erreurs et j'ai trouvé peu de choses pour vraiment expliquer quand faire l'une ou l'autre.
La plupart disent «utiliser des assertions pour vérifier les erreurs logiques et utiliser des vérifications explicites pour rechercher d'autres échecs». Cela ne semble cependant pas nous mener très loin. Dirions-nous que cela est possible:
Malloc returning null, check explictly
API user inserting odd input for functions, use asserts
Est-ce que cela me ferait mieux de vérifier les erreurs? Que puis-je faire d'autre? Je veux vraiment améliorer et écrire mieux, du code «professionnel».
setjmp
/ longjmp
sont disponibles en C, vous n'avez donc pas besoin d'une nouvelle langue.