Conclusiones finales sobre excepciones
Una última cosa antes de finalizar el tema. Recuerda que puedes controlar los errores en Python de dos maneras:
Uso de condicionales vs. manejo de excepciones
Imagina que eres un mago aprendiz y estás practicando tus hechizos en la escuela de magia de Python. Tienes dos formas de asegurarte de que tus hechizos funcionen correctamente:
-
El método de la "bola de cristal" (uso de estructuras condicionales):
Antes de lanzar tu hechizo, miras en tu bola de cristal para ver si funcionará. Es como decir:
Comprobación previa de valor antes de convertirlodef es_numero(texto): if texto[0] in ('-', '+'): return texto[1:].isdigit() return texto.isdigit() numero = "-32" if es_numero(numero): numero = int(numero) print(numero, "ahora es del tipo entero.") else: print(numero, "no se puede convertir en número entero.")
Aquí compruebas si el valor almacenado en la variable
numero
se puede convertir a número entero, antes de intentar convertirlo en número entero.No vamos a explicar en detalle el código porque no es el objeto de estudio ahora. Solo debes entender que la función
es_numero()
recibe un argumento y valida si se puede convertir en un número o no.Como podrás observar, en este caso no es posible que ocurra un error del tipo ValueError porque si el valor no es un número, simplemente no se intenta convertirlo.
-
El método del "escudo mágico" (manejo de excepciones):
A diferencia del método anterior, con este método no realizas ninguna comprabación previa. Simplemente lanzas el hechizo y usas un escudo mágico para protegerte si algo sale mal. Es como decir:
numero = "-32"
try:
numero = int(numero)
except ValueError:
print(numero, "no se puede convertir en número entero.")
else:
print(numero, "ahora es del tipo entero.")
Aquí, intentas convertir el valor almacenado en la variable
numero
a número entero directamente y si falla, el manejo de excepciones de activa evitando que el error detenga la ejecución del programa y diciéndote cual fue el problema.
Conclusiones:
El manejo de excepciones en Python es como tener un escudo mágico super inteligente. En lugar de preocuparte por revisar cada detalle antes de hacer algo (como ocurriría con estructuras condicionales), puedes intentar que tus códigos se ejecuten y dejar que el manejo de excepciones se encargue si algo sale mal.
Esto tiene varias ventajas:
- Es más rápido: No pierdes tiempo comprobando todo antes.
- Es más seguro: Atrapa errores que quizás no esperabas.
- Tu código se ve más limpio: No tienes que llenar todo de "si esto, si lo otro".
- Es más flexible: Puedes intentar cosas sin miedo, sabiendo que las excepciones te protegerán.
Recuerda, tanto los condicionales como las excepciones son herramientas útiles en Python. A veces usarás uno, a veces el otro, y a veces ¡los combinarás para crear códigos súper poderosos!
A medida que escribas más código en Python, verás que los errores son inevitables. A veces son errores de sintaxis, que tienes que corregir si quieres ejecutar tu programa.
Pero también pueden ser errores en tiempo de ejecución:
- error de nombre: por ejemplo, variables que querías definir pero no lo hiciste,
- errores de valor: por ejemplo, errores en los que el usuario no cooperó y te proporcionó algo que no esperabas, o
- una lista completa de otros posibles errores o excepciones.
Pero ahora, cuentas con las herramientas y el conocimiento suficiente para manejar estos errores y responder a ellos de la mejor manera.
Así que adelante, escribe tus códigos con confianza y deja que las excepciones los protejan cuando los errores se sucedan.