Manejo de errores y testing

Mapa conceptual
Qué es una excepción
Una excepción es un evento que interrumpe el flujo normal cuando algo no cuadra: división por cero, archivo inexistente, tipo de dato inesperado. Python la «lanza» y, si nadie la captura, el programa termina.
try y except
- En try, colocas el código que puede fallar.
- En except, atrapas el tipo concreto de error y decides qué hacer.
- else corre si no hubo excepción; finally corre siempre (para cerrar archivos, liberar recursos).
Atrapa poco y específico
Un «except» que atrapa todo y no hace nada oculta bugs: el programa parece funcionar pero tapa la verdad. Captura el tipo exacto que esperas manejar y deja que los demás suban. Silenciar es peor que fallar.
Lanzar errores propios
Con raise puedes abortar con un mensaje claro cuando un dato viola lo esperado: mejor una excepción temprana y elocuente que un cálculo corrupto más adelante. Fail fast: detecta el problema donde nace.
| Bloque | Cuándo corre | Uso típico |
|---|---|---|
| try | siempre intenta el código protegido | operación que puede fallar |
| except | si hay una excepción capturada | manejar un tipo de error |
| else | si NO hubo excepción | proseguir con lo bueno |
| finally | siempre, haya o no error | limpiar recursos |
¿Cuál es un buen uso de try/except?
Por qué probar
Las pruebas son la red de seguridad: verifican que tu código hace lo que debe hoy, y avisan si un cambio de mañana lo rompe. Sin pruebas, refactorizar es caminar sobre el hielo.
assert y unittest
- assert: una comprobación simple de que algo es verdad; falla ruidosamente si no.
- pytest / unittest: frameworks que ejecutan muchas comprobaciones juntas y reportan los fallos.
Pruebas unitarias
Una prueba unitaria toma una pieza pequeña del código (una función), le da entradas conocidas y comprueba la salida esperada. Rápidas, autónomas y repetibles: se corren con cada cambio.
Silenciar una excepción sin registrarla es una práctica recomendada para evitar molestias.
El ciclo rojo-verde
En desarrollo con pruebas (TDD), primero escribes una prueba que falla (rojo), luego implementas lo mínimo para que pase (verde) y después limpias. Convierte el «funciona, no sé por qué» en algo verificable.
Errores frecuentes
- Capturar excepción base (bare except) y perder el rastro del error real.
- Usar excepciones como control de flujo ordinario, para lo que hay condicionales.
- No escribir ninguna prueba y confiar en el «parece que anda».
Ordena las piezas de un programa confiable:
1
2
3
4
pytest
Framework de pruebas: fijar comportamiento y correr suites.
Escribe mentalmente una función que lea un archivo y calcule su media. Señala qué excepciones pueden surgir, cómo las manejarías y qué tres casos probarías con una unidad de test.
Documentacion pandas
Guia de referencia para manipulacion de datos en Python.