28Fermer30
PpHdLe 10/11/2014 à 18:00
Zerosquare (./24) :
En pratique on s'habitue vite à vérifier systématiquement tous les codes de retour. Et en plus de te prémunir contre les cas d'échec auxquels tu n'as pas pensé à la conception, ça permet aussi de mettre en évidence des bugs de manière anticipée. Imagine : tu fais un malloc de n octets, avec n toujours suffisamment petit donc que tu considères que ça ne peut pas échouer (pas bien, mais bref). Si t'as un bug ailleurs qui fait que n est très grand, vérifier le code de retour de malloc() te préviendra qu'il y a un problème tout de suite, plutôt que de te retrouver avec une segmentation fault à retardement. Même dans le cas cité avant, un fclose() qui échoue, ça alerte sur le fait qu'il y a un truc pas net (cas réel : le handle passé en paramètre était pas le bon).


Pour ce genre de tests, en général, je teste avec la macro assert (j'use et abuse du assert).