Como buen programador, uno debe escribir códigos robustos que manejen cada resultado de su programa. Sin embargo, casi todas las funciones de la biblioteca C devolverán 0 o -1 o NULL cuando haya un error.
A veces es obvio que se necesita una comprobación de errores, por ejemplo, cuando intenta abrir un archivo. Pero a menudo ignoro la comprobación de errores en funciones como printfo incluso mallocporque no me parece necesario.
if(fprintf(stderr, "%s", errMsg) < 0){
perror("An error occurred while displaying the previous error.");
exit(1);
}
¿Es una buena práctica simplemente ignorar ciertos errores, o hay una mejor manera de manejar todos los errores?
trydeclaración, por lo que no tiene que verificar cada llamada u operación. (También tenga en cuenta que algunos idiomas son mejores que otros para detectar errores simples como la anulación de referencia o el índice de matriz fuera de los límites).
errno! En caso de que no esté familiarizado, si bien es cierto que "casi todas las funciones de la biblioteca C devolverán 0 o -1 o NULLcuando haya un error", también establecen la errnovariable global , a la que puede acceder mediante el uso #include <errno.h>y luego simplemente leyendo el valor de errno. Entonces, por ejemplo, si open(2) regresa -1, es posible que desee verificar si errno == EACCES, lo que indicaría un error de permisos, o ENOENT, lo que indicaría que el archivo solicitado no existe.
try/ catch, aunque podría simularlo con saltos.