MÓDULO 10: Manejo Básico de Errores en Python
🎯 ¿Por qué es Importante el Manejo de Errores?
Cuando programas, los errores son inevitables: archivos que no existen, divisiones por cero, datos faltantes, entre otros.
El manejo de errores permite que tu programa:
- No se detenga inesperadamente.
- Responda de forma controlada ante fallos.
- Proporcione mensajes claros al usuario o al sistema.
- Evite consecuencias en procesos automáticos, especialmente en integraciones con sistemas como Epicor u Odoo.
🔹 ¿Qué es una Excepción?
Una excepción es un error detectado durante la ejecución del programa. Si no es manejada, detendrá el script.
Ejemplo clásico:
python
CopiarEditar
print(10 / 0) # ❌ ZeroDivisionError
🔧 Uso de try-except
La forma básica de manejar errores en Python es con el bloque:
python
CopiarEditar
try: # Código que puede generar un error except: # Código que se ejecuta si ocurre un error
📌 Ejemplo básico:
python
CopiarEditar
try: resultado = 10 / 0 except: print("Ocurrió un error al dividir.")
Salida:
Ocurrió un error al dividir.
1️⃣ Capturar Errores Específicos
Es recomendable capturar excepciones específicas para tener mayor control:
python
CopiarEditar
try: resultado = 10 / 0 except ZeroDivisionError: print("Error: No puedes dividir entre cero.")
2️⃣ Uso de else y finally
- else: Se ejecuta si no ocurre ningún error.
- finally: Se ejecuta siempre, ocurra o no un error (ideal para cerrar conexiones, archivos, etc.).
python
CopiarEditar
try: print("Proceso sin errores") except: print("Error detectado") else: print("Todo salió bien") finally: print("Fin del proceso")
🏢 Ejemplo Práctico en Raloy: Leer un Archivo de Reporte
Supón que automatizas la lectura de un archivo de inventario:
python
CopiarEditar
try: with open('inventario.csv') as archivo: datos = archivo.read() print(datos) except FileNotFoundError: print("⚠️ Error: El archivo de inventario no fue encontrado.")
Esto evita que el programa falle si el archivo no está disponible.
🚨 Errores Comunes
- Capturar todas las excepciones sin control:
python
CopiarEditar
try: # Código except: print("Error") # ❌ Poco informativo
- Olvidar cerrar conexiones o archivos sin usar finally.
- No anticipar errores previsibles, como ingreso de datos incorrectos por usuarios.
💡 Buenas Prácticas
- Siempre captura errores específicos.
- Usa mensajes claros y útiles.
- Evita "silenciar" errores que necesitan atención.
- Usa finally para limpiar recursos (cerrar archivos, conexiones, etc.).
🔹 Lista de Excepciones Comunes
Excepción | Descripción |
---|---|
ZeroDivisionError | División por cero |
FileNotFoundError | Archivo no encontrado |
ValueError | Tipo de dato incorrecto |
KeyError | Clave inexistente en un diccionario |
IndexError | Índice fuera de rango en listas |
TypeError | Operación inválida entre tipos |
🏢 Caso Práctico en Raloy: Validación de Datos de Pedido
Automatizar validación de montos antes de procesar un pedido:
python
CopiarEditar
def procesar_pedido(monto): try: if monto <= 0: raise ValueError("El monto debe ser mayor a cero.") print(f"Procesando pedido por ${monto}") except ValueError as e: print(f"⚠️ Error en pedido: {e}") procesar_pedido(-500)
Salida:
⚠️ Error en pedido: El monto debe ser mayor a cero.
No hay comentarios por ahora.