Manejar excepciones es una parte crucial del desarrollo de software robusto. En Python, las excepciones permiten controlar errores y situaciones inesperadas de manera estructurada. A continuación, te explicamos cómo manejar excepciones en Python de manera efectiva.
Introducción a las excepciones
Una excepción en Python es un evento que interrumpe el flujo normal de un programa cuando ocurre un error. Para manejar estas excepciones, Python utiliza bloques try
y except
.
Uso básico de try
y except
El uso más simple de manejo de excepciones en Python implica los bloques try
y except
. Cuando se produce una excepción en el bloque try
, el control del programa pasa al bloque except
.
try:
# Código que puede lanzar una excepción
numero = int(input("Introduce un número: "))
resultado = 10 / numero
print(f"El resultado es {resultado}")
except ZeroDivisionError:
# Manejo específico de la excepción ZeroDivisionError
print("Error: No se puede dividir entre cero.")
except ValueError:
# Manejo específico de la excepción ValueError
print("Error: Entrada no válida. Por favor, introduce un número.")
En este ejemplo, se manejan dos tipos de excepciones: ZeroDivisionError
y ValueError
.
Uso de else
y finally
El bloque else
se ejecuta si no se produce ninguna excepción, y el bloque finally
se ejecuta siempre, independientemente de si se produjo una excepción o no.
try:
numero = int(input("Introduce un número: "))
resultado = 10 / numero
except ZeroDivisionError:
print("Error: No se puede dividir entre cero.")
except ValueError:
print("Error: Entrada no válida. Por favor, introduce un número.")
else:
print(f"El resultado es {resultado}")
finally:
print("La operación ha finalizado.")
En este ejemplo, si no se produce ninguna excepción, se ejecuta el bloque else
. El bloque finally
se ejecuta siempre, lo que lo hace útil para la limpieza de recursos.
Manejo de múltiples excepciones
Python permite manejar múltiples excepciones en un solo bloque except
utilizando una tupla de excepciones.
try:
numero = int(input("Introduce un número: "))
resultado = 10 / numero
except (ZeroDivisionError, ValueError) as e:
print(f"Se produjo un error: {e}")
En este caso, tanto ZeroDivisionError
como ValueError
son manejadas en el mismo bloque except
.
Creación de excepciones personalizadas
Además de manejar las excepciones incorporadas, Python permite crear excepciones personalizadas para situaciones específicas.
class MiExcepcionPersonalizada(Exception):
pass
try:
raise MiExcepcionPersonalizada("Se produjo un error personalizado")
except MiExcepcionPersonalizada as e:
print(e)
Aquí, se define una excepción personalizada MiExcepcionPersonalizada
y se lanza usando raise
.
Conclusión
El manejo de excepciones es esencial para crear aplicaciones robustas y mantener el flujo del programa en situaciones inesperadas. Usando bloques try
, except
, else
y finally
, junto con excepciones personalizadas, puedes controlar eficazmente los errores en tu código Python.