Programming Concept

Manejo de Errores

Programación defensiva versus estrategias de manejo de errores basadas en excepciones.

Capítulo 6 (pp. 151–158) de Computer Science I.

Temas

SecciónPáginaContenido
Manejo de Errores153El problema de la falla en tiempo de ejecución.
Estrategias de Manejo de Errores153Programació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.