Python:
Manejo de errores

Cómo hacerlo:

# Bloque básico try-except
try:
    # código riesgoso
    numero = int(input("Ingresa un número: "))
except ValueError:
    # manejar error
    print("¡Eso no es un número!")

# Especificando múltiples excepciones
try:
    # código que podría generar diferentes excepciones
    resultado = 10 / int(input("Ingresa un divisor: "))
except ZeroDivisionError:
    print("¡Ups! No se puede dividir entre cero.")
except ValueError:
    print("Necesito un número, amigo.")

# Usando else y finally
try:
    numero = int(input("Ingresa un número para elevar al cuadrado: "))
except ValueError:
    print("¡Dije un número!")
else:
    # no ocurrieron errores
    print("Tu número al cuadrado es:", numero**2)
finally:
    # siempre se ejecuta
    print("¡Gracias por probar esto!")

Ejemplo de salida al introducir un número inválido en el primer bloque:

Ingresa un número: hola
¡Eso no es un número!

Inmersión Profunda

Desde los albores de la programación, el manejo de errores ha sido crucial. Los enfoques tempranos eran rudimentarios, como verificar condiciones antes de cada operación riesgosa. La sintaxis try-except de Python proviene de un legado de manejo de excepciones en lenguajes más antiguos como C++ y Java, simplificando el proceso.

Cuando intentas (try) un bloque de código, Python está atento a cualquier excepción. Si aparece un error, el bloque except lo captura. Puedes especificar sobre las excepciones que capturas o capturarlas todas con un except desnudo. Sin embargo, la especificación primero es el mejor enfoque: es preciso, no una red para todo.

else y finally son extras en este concepto. El bloque else se ejecuta si el bloque try no tiene errores. finally es el amigo confiable que se ejecuta pase lo que pase: piensa en operaciones de limpieza.

¿Alternativas? Claro que las hay. Algunos lenguajes utilizan códigos de retorno en lugar de excepciones. También podrías encontrar sentencias with para el manejo de recursos o assertions que verifican condiciones mientras se desarrolla. Pero cuando hablamos de estrategias de manejo de errores sólidas, el modelo try-catch destaca por su legibilidad y estructura.

Ver También

Aquí hay algunos buenos recursos adicionales para profundizar aún más: