Gestión de excepciones en C
Implemente estrategias sólidas de gestión de errores sin un mecanismo integrado de manejo de excepciones
Gestión de excepciones en C es una lección gratuita de C Academy en CoddyKit. Esta es la lección 3 de 3. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de C Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de C Academy incluye 3 lecciones en total.
Introducción al manejo de excepciones
Manejo de excepciones en C
A diferencia de lenguajes como C++ y Java, C no cuenta con un mecanismo integrado para manejar excepciones.
En esta lección, aprenderá:
- Cómo manejar errores mediante valores de retorno.
- Cómo utilizar
setjmpylongjmppara manejar excepciones. - Cómo utilizar
errnopara manejar errores del sistema.

Manejar errores con valores de retorno
Manejar errores con valores de retorno
La forma más sencilla de manejar errores en C es utilizar valores de retorno.
Ejemplo:
int divide(int a, int b) {
if (b == 0) return -1; // Error code
return a / b;
}
El código que realiza la llamada comprueba si el valor de retorno indica un error.
Ejemplo: manejo de errores con valores de retorno
Ejemplo: manejo de errores con valores de retorno
Este programa comprueba la división entre cero mediante valores de retorno.
#include <stdio.h>
int divide(int a, int b) {
if (b == 0) {
printf("Error: Division by zero!\n");
return -1;
}
return a / b;
}
int main() {
int result = divide(10, 0);
if (result != -1) {
printf("Result: %d\n", result);
}
return 0;
}Usar setjmp y longjmp para manejar errores
Usar setjmp y longjmp para manejar errores
Las funciones setjmp y longjmp permiten realizar saltos no locales para simular el manejo de excepciones.
Pasos:
- Utilice
setjmp()para marcar un punto de recuperación. - Utilice
longjmp()para volver a ese punto cuando se produzca un error.
Ejemplo: usar setjmp y longjmp
Ejemplo: usar setjmp y longjmp
Este programa utiliza setjmp y longjmp para manejar errores.
#include <stdio.h>
#include <setjmp.h>
jmp_buf buffer;
void errorHandler() {
printf("Error occurred! Jumping back to safe state.\n");
longjmp(buffer, 1);
}
int main() {
if (setjmp(buffer) == 0) {
printf("Executing main program...\n");
errorHandler();
} else {
printf("Recovered from error.\n");
}
return 0;
}Usar errno para gestionar errores del sistema
Usar errno para gestionar errores del sistema
La variable errno almacena los códigos de error de las llamadas al sistema.
Ejemplo:
#include
Las funciones como fopen() establecen errno cuando se producen errores.
Ejemplo: usar errno para manejar archivos
Ejemplo: usar errno para manejar archivos
Este programa comprueba errno al intentar abrir un archivo que no existe.
#include <stdio.h>
#include <errno.h>
int main() {
FILE *file = fopen("nonexistent.txt", "r");
if (!file) {
perror("Error opening file");
}
return 0;
}Prácticas recomendadas para manejar errores
Prácticas recomendadas para manejar errores
Para gestionar los errores de forma eficaz:
- Compruebe los valores de retorno de las funciones.
- Utilice
errnopara los errores del sistema. - Utilice
setjmpylongjmpsolo cuando sea necesario.
Resumen
Resumen
En esta lección, ha aprendido:
- Cómo manejar errores mediante valores de retorno.
- Cómo
setjmpylongjmpsimulan el manejo de excepciones. - Cómo utilizar
errnopara detectar errores del sistema.
¡Con esto concluye la sección Depuración y manejo de errores en C!

Preguntas frecuentes
¿La lección «Gestión de excepciones en C» es gratis?
Sí — el texto completo de «Gestión de excepciones en C» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de C Academy, actualiza a CoddyKit PRO. El curso de C Academy incluye 3 lecciones en total.
¿Qué aprenderé en «Gestión de excepciones en C»?
Implemente estrategias sólidas de gestión de errores sin un mecanismo integrado de manejo de excepciones Practicas C Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar C Academy?
No se requiere experiencia previa. C Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 3.
¿Cuánto tiempo toma la lección «Gestión de excepciones en C»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de C Academy?
Sí. Cada lección de C Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Depuración con GDB
- Errores habituales en tiempo de ejecución
- Gestión de excepciones en C