Capítulo 6 (pp. 151–158) de Computer Science I.
Temas
| Sección | Página | Contenido |
|---|---|---|
| Manejo de Errores | 153 | El problema de la falla en tiempo de ejecución. |
| Estrategias de Manejo de Errores | 153 | Programación defensiva; excepciones. |
Ideas Clave
Se presentan dos estrategias:
- Programación defensiva — validar entradas / verificar códigos de retorno antes de actuar. Materializada como códigos de error/POSIX y enums en C.
- Excepciones — flujo de control con throw/catch. Materializada plenamente en Java (checked vs unchecked) y PHP.
C carece de excepciones nativas, por lo que se apoya en códigos de error; este contraste es un momento didáctico deliberado a lo largo de las partes de lenguajes.
Ejemplos
Programación defensiva
función safeDivide(a, b):
si b = 0:
retornar error "division by zero"
retornar a / b
Validar antes de actuar — el enfoque estilo C.
Excepciones
intentar:
datos ← readFile("in.txt")
capturar FileNotFound:
imprimir "missing file"
Separa el camino feliz del camino de fallo.
En Java
try {
String data = readFile("in.txt");
} catch (FileNotFoundException e) {
System.out.println("missing file");
}
FileNotFoundException es una excepción checked — el compilador te obliga a
capturarla o a declarar throws.
Citas
[1] Computer Science I, Cap. 6, pp. 151–158.