Estoy intentando crear unas funciones para poder añadir a mis programas en ANSI-C que se encarguen del manejo de errores.
De momento, he conseguido que cada vez que una función no finalice correctamente (por un overflow, porque los parámetros estén fuera del rango, etc...) se muestre el código del error mostrando "errno" o la descripción del error con "ferror()".
El problema es que para ver si errno es distinto de 0 (y por lo tanto ha ocurrido un error) tengo que estar evaluando el contenido de errno después de cada función que ejecuto...y esto me parece que es demasiado "chapucero"... ¿No hay alguna forma de que el código quedase tal que así?:
Código:
mientras errno==0 ejecuta:
funcion1()
funcion2()
etc ....
si derrepente errno!=0 ejecuta:
mostar mensaje
continuar ejecucción donde se produjo el error
funcion1()
funcion2()
etc ....
si derrepente errno!=0 ejecuta:
mostar mensaje
continuar ejecucción donde se produjo el error
Otra duda que me ha surgido a raíz de esto es: cómo puedo mostrar un mensaje de error si al pedir por scanf un integer (por ejemplo), el usuario introduce una letra.
A mi solo se me ocurre recurrir a capturarlo como un char y luego mirar si es realmente un número... pero también me parece una solución un poco asá...¿Hay otra manera de hacerlo?
Espero que al menos haya podido expresar de manera comprensible mis dudas xD.
Salu2!











Autor




En línea










