Frogames Python Expert
Cursos Premium

Manejo de Errores

Escribe código que no explote en producción. Aprende a anticipar, capturar y gestionar los fallos con elegancia.

1. Por Qué los Errores son Inevitables

En el mundo real, los datos no siempre llegan con el formato esperado. Una API puede estar caída. Un usuario puede escribir texto donde esperas un número. El código que no maneja errores es código que fallará ante el primer imprevisto.

Python tiene un sistema elegante para esto: el bloque try / except. Es tu red de seguridad profesional.

2. La Estructura Básica: try / except

La idea es simple: "Intenta esto. Si falla, haz aquello".

try:
    numero = int(input("Introduce un número: "))
    resultado = 10 / numero
    print(f"Resultado: {resultado}")
except ZeroDivisionError:
    print("Error: No puedes dividir entre cero.")
except ValueError:
    print("Error: Eso no es un número válido.")
Buena práctica: Captura errores específicos (ZeroDivisionError, ValueError) en lugar de usar un except genérico. Así sabes exactamente qué salió mal.

3. El Bloque Completo: else y finally

else

Se ejecuta solo si no hubo ningún error. Perfecto para código que depende del éxito del try.

try:
    datos = cargar_archivo("datos.csv")
except FileNotFoundError:
    print("Archivo no encontrado.")
else:
    procesar(datos)  # Solo si cargó bien

finally

Se ejecuta siempre, haya error o no. Ideal para cerrar conexiones o liberar recursos.

conexion = abrir_db()
try:
    datos = conexion.query("SELECT...")
except Exception as e:
    print(f"Fallo: {e}")
finally:
    conexion.close()  # Siempre se cierra

4. Errores Comunes en Python

Error Cuándo ocurre
ValueError Tipo correcto pero valor inválido. Ej: int("hola")
TypeError Tipo de dato incorrecto. Ej: 5 + "texto"
KeyError Clave inexistente en un diccionario
IndexError Índice fuera del rango de una lista
FileNotFoundError El archivo que intentas abrir no existe
AttributeError Llamar a un método que el objeto no tiene

5. Lanzar tus Propios Errores con raise

Como arquitecto de código, a veces quieres provocar un error si los datos no cumplen tus reglas. Para eso existe raise.

def calcular_raiz(numero):
    if numero < 0:
        raise ValueError("No se puede calcular la raíz de un número negativo.")
    return numero ** 0.5

try:
    print(calcular_raiz(-9))
except ValueError as e:
    print(f"Error controlado: {e}")

¿Listo para convertirte en un Maestro?

Potencia tu carrera con el Máster Completo: Python de la A a la Z. Domina Ciencia de Datos, ML y Deep Learning.

Ver ahora