¿Qué son las excepciones en Python?
Las excepciones son eventos que pueden alterar el flujo normal de un programa. En Python, cualquier evento que interrumpa el flujo normal de ejecución puede ser considerado una excepción. Estas pueden ser generadas por diversas situaciones, como errores de entrada/salida, operaciones inválidas o intentos de acceder a índices fuera de los límites en una lista.
Tipos comunes de excepciones
Existen varios tipos de excepciones predefinidas en Python. Algunos de los tipos más comunes incluyen:
- TypeError: Se produce cuando se realiza una operación en un tipo de dato incorrecto.
- ValueError: Se lanza cuando se pasa un argumento de tipo correcto pero con un valor inapropiado.
- IndexError: Ocurre al intentar acceder a un índice que no existe en una lista.
- KeyError: Se levanta cuando se intenta acceder a una clave que no está en un diccionario.
Manejo de excepciones con try y except
El manejo de excepciones en Python se realiza a través de bloques try y except. Este enfoque te permite intentar ejecutar un bloque de código y manejar las excepciones que puedan surgir de manera controlada.
A continuación, te mostramos un ejemplo práctico:
try:
numero = int(input("Introduce un número: "))
resultado = 10 / numero
print(f"El resultado es: {resultado}")
except ValueError:
print("Error: Debes introducir un número válido.")
except ZeroDivisionError:
print("Error: No se puede dividir entre cero.")
En este fragmento de código:
- Intentamos obtener un número del usuario y dividir 10 entre ese número.
- Si el usuario introduce un valor no entero, se lanza una ValueError.
- Si el usuario introduce 0, se produce una ZeroDivisionError.
Uso de finally y else
Python también ofrece las cláusulas finally y else para proporcionar un manejo aún más completo de las excepciones:
- finally: Un bloque que se ejecuta siempre, sin importar si ocurrió una excepción o no.
- else: Un bloque que solo se ejecuta si la sección try no genera excepciones.
Ejemplo:
try:
numero = int(input("Introduce un número: "))
resultado = 10 / numero
except ZeroDivisionError:
print("Error: No se puede dividir entre cero.")
else:
print(f"El resultado es: {resultado}")
finally:
print("Este bloque se ejecuta siempre.")
Crear excepciones personalizadas
A veces, es útil crear tus propias excepciones personalizadas para manejar situaciones específicas. Esto se realiza mediante la creación de una clase que hereda de Exception.
class MiError(Exception):
pass
def verificar(numero):
if numero < 0:
raise MiError("El número no puede ser negativo.")
try:
verificar(-10)
except MiError as e:
print(e)
En este código, hemos creado una excepción personalizada que se lanza si el número es negativo.
Conclusión
El manejo de errores y excepciones es esencial para crear programas robustos en Python. A través de las estructuras try, except, finally y else, puedes identificar, controlar y responder a errores de manera efectiva. Aprender a manejar excepciones te permitirá desarrollar aplicaciones más confiables y user-friendly.
Deja una respuesta