En tant que bon programmeur, vous devez écrire des codes robustes capables de gérer chaque résultat de son programme. Cependant, presque toutes les fonctions de la bibliothèque C renverront 0 ou -1 ou NULL en cas d'erreur.
Il est parfois évident qu'une vérification d'erreur est nécessaire, par exemple lorsque vous essayez d'ouvrir un fichier. Mais j'ignore souvent la vérification des erreurs dans des fonctions telles que printf
ou même malloc
parce que je ne me sens pas nécessaire.
if(fprintf(stderr, "%s", errMsg) < 0){
perror("An error occurred while displaying the previous error.");
exit(1);
}
Est-ce une bonne pratique de simplement ignorer certaines erreurs ou existe-t-il un meilleur moyen de gérer toutes les erreurs?
try
instruction. Vous n'avez donc pas à vérifier chaque appel ou opération. (Notez également que certaines langues sont plus aptes que d'autres à détecter des erreurs simples telles que la déréférence null ou l'index de tableau hors limites.)
errno
! Au cas où vous ne le sauriez pas, s'il est vrai que "presque toutes les fonctions de la bibliothèque C renverront 0 ou -1 ou NULL
en cas d'erreur", elles définissent également la errno
variable globale , à laquelle vous pouvez accéder en #include <errno.h>
lisant simplement la valeur de errno
. Ainsi, par exemple, si open
(2) renvoie -1
, vous souhaiterez peut-être vérifier si errno == EACCES
, ce qui indiquerait une erreur d'autorisation ou ENOENT
si le fichier demandé n'existe pas.
try
/ catch
, bien que vous puissiez le simuler avec des sauts.