Excepciones y Manejo de Errores
El manejo adecuado de errores es esencial para escribir código robusto. Las excepciones permiten manejar situaciones inesperadas durante la ejecución de un programa sin que este termine abruptamente.
Conceptos clave
- try: Bloque donde intentamos ejecutar código que puede generar una excepción.
- except: Bloque donde capturamos y gestionamos una excepción.
- else: Bloque que se ejecuta si no hay excepciones.
- finally: Bloque que se ejecuta independientemente de si hubo una excepción o no.
Ejemplo
try:
= int(input("Introduce un número: "))
numero except ValueError as e:
print(f"Error: {e}. Introduce un número válido.")
else:
print(f"El número es {numero}.")
finally:
print("Operación terminada.")
Excepciones personalizadas
Podemos crear nuestras propias excepciones para situaciones específicas.
class MiError(Exception):
def __init__(self, mensaje):
self.mensaje = mensaje
super().__init__(self.mensaje)
try:
raise MiError("Algo salió mal")
except MiError as e:
print(f"Capturado: {e}")
Ejemplo Práctico
Objetivo:
Aprender a manejar excepciones en Python para crear un programa robusto que gestione entradas de usuario incorrectas.
Descripción: Crear un programa que pida al usuario un número, y en caso de que se ingrese algo que no sea un número, maneje el error de manera adecuada, mostrando un mensaje informativo.
Instrucciones:
Utiliza un bloque try-except para manejar excepciones de tipo ValueError.
Agrega un bloque else para confirmar la entrada del usuario si es válida.
Incluye un bloque finally que imprima un mensaje de despedida.
Posibles soluciones
Código:
def pedir_numero():
try:
= int(input("Introduce un número: "))
numero except ValueError:
print("¡Error! No has introducido un número válido.")
else:
print(f"Has introducido el número: {numero}")
finally:
print("Fin del programa")
pedir_numero()