Captura de excepciones en Python

PythonPythonBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En las profundidades enigmáticas del Bosque de los Susurros, bajo el manto plateado de una noche llena de luna, había un rumor entre los principiantes hechiceros de que había aparecido un Mentor del Alma del Bosque Mágico. Se decía que este guía esquivo poseía el conocimiento del Python, el lenguaje serpenteo que podía controlar la misma estructura del código. Encontrar al Mentor era aprender las artes antiguas de capturar excepciones, una forma de encantar su código para manejar los hechizos impredecibles del error sin que se derrumbe la magia misma.

Una noche, te encuentras parado frente a un roble antiguo, sus hojas brillando con un resplandor etéreo. Es aquí, en el corazón del bosque, donde aprenderás los secretos del Mentor. Tu objetivo es dominar el arte arcano de capturar excepciones en Python, asegurando que tus encantamientos permanezcan intactos, incluso cuando ocurra lo inesperado.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ErrorandExceptionHandlingGroup(["Error and Exception Handling"]) python/ErrorandExceptionHandlingGroup -.-> python/catching_exceptions("Catching Exceptions") subgraph Lab Skills python/catching_exceptions -.-> lab-271525{{"Captura de excepciones en Python"}} end

Identificando Posibles Maldiciones

En este paso, aprenderás a identificar los puntos potenciales donde pueden ocurrir maldiciones (errores) en tus encantamientos de Python (código). Comencemos creando un hechizo simple que a veces puede salir mal. Crearemos un script de mezcla de pociones que intentará dividir las pociones en frascos más pequeños, pero como cualquier sabio hechicero sabe, nunca se debe dividir entre cero.

Abra un archivo llamado potion_dividing.py dentro de ~/project y agregue el siguiente código:

def divide_potions(total_potions, vial_count):
    return total_potions / vial_count

## Intentar dividir 10 pociones en 2 frascos
print(divide_potions(10, 2))

Ejecute su código en la terminal usando el comando:

python ~/project/potion_dividing.py

Debería ver la salida:

5.0

Indica la división exitosa de las pociones.

Ahora, modifique el script potion_dividing.py para incluir un caso de hechizo riesgoso.

print(divide_potions(10, 0))  ## Este encantamiento es peligroso y debe ser manejado!

Debería ver la salida:

Traceback (most recent call last):
  File "/home/labex/project/potion_dividing.py", line 6, in <module>
    print(divide_potions(10, 0))
  File "/home/labex/project/potion_dividing.py", line 2, in divide_potions
    return total_potions / vial_count
ZeroDivisionError: división por cero

Ejecutar el script mejorado te mostrará la excepción maldita que debes capturar. En este laboratorio, aprenderemos a manejar tales casos con gracia.

Creando un Hechizo Protector

Después de haber experimentado la maldición de dividir entre cero, es hora de crear un hechizo protector utilizando las cláusulas try y except. Actualice el script potion_dividing.py para incluir una protección contra tales resultados calamitosos.

def divide_potions(total_potions, vial_count):
    try:
        return total_potions / vial_count
    except ZeroDivisionError:
        return "Un hechicero nunca divide entre cero!"

## Intentar dividir las pociones de manera segura
print(divide_potions(10, 2))
print(divide_potions(10, 0))  ## Esto ya no debería causar una maldición

Ejecute nuevamente el script mejorado en su terminal usando:

python ~/project/potion_dividing.py

Su código ahora debería manejar la excepción con gracia, y en lugar de un error, imprimirá un mensaje de advertencia:

5.0
Un hechicero nunca divide entre cero!

Resumen

En este laboratorio, recorrimos los ámbitos oscuros de las excepciones de Python en un contexto de bosque mágico. Exploramos cómo identificar posibles errores y cómo conjurar hechizos protectores (bloques try/except) para proteger nuestro código contra calamidades inesperadas sin interrumpir el flujo del encantamiento.

Al final de nuestro viaje, no solo hemos encontrado el ZeroDivisionError, sino que también hemos dominado la técnica para evitar su caos, lo que hace que nuestro código sea más robusto y menos propenso a ser interrumpido por las fuerzas del caos.

A medida que continúes tus aventuras en la codificación, recuerda las palabras del Mentor del Alma del Bosque Mágico: "Un sabio hechicero siempre espera lo inesperado y protege el hechizo con una cláusula protectora".