domingo, 23 de febrero de 2025

馃憠 Manejo de Excepciones y Errores en Python: C贸mo Evitar Fallos en tu C贸digo

A medida que escribimos c贸digo m谩s complejo, es inevitable que aparezcan errores. En lugar de dejar que nuestro programa se bloquee, podemos manejar estos errores de manera controlada usando excepciones en Python.

Hoy aprender谩s:
✔️ ¿Qu茅 son las excepciones y por qu茅 manejarlas?
✔️ C贸mo usar try, except, finally
✔️ Capturar errores espec铆ficos en Python
✔️ Crear nuestras propias excepciones
✔️ Ejemplo pr谩ctico explicando su uso


1️⃣ ¿Qu茅 son las Excepciones en Python?

Una excepci贸n es un error que ocurre mientras el programa se est谩 ejecutando. Si no manejamos las excepciones, el programa se detendr谩 abruptamente.

馃搶 Ejemplo de error sin manejo de excepciones:

numero = int(input("Introduce un n煤mero: ")) print(f"El doble es: {numero * 2}")

馃搶 Si el usuario introduce un texto en lugar de un n煤mero, el programa mostrar谩 un error:

ValueError: invalid literal for int() with base 10

Para evitar que el programa se bloquee, usamos try y except.


2️⃣ C贸mo Usar try y except para Manejar Errores

El bloque try intenta ejecutar el c贸digo y, si ocurre un error, el bloque except lo captura y muestra un mensaje en lugar de interrumpir el programa.

馃敼 Ejemplo b谩sico de manejo de excepciones:

try: numero = int(input("Introduce un n煤mero: ")) print(f"El doble es: {numero * 2}") except ValueError: print("❌ Error: Debes ingresar un n煤mero v谩lido.")

✅ Si el usuario introduce un n煤mero, el c贸digo funciona normalmente.
✅ Si introduce texto, el except captura el error y muestra un mensaje sin bloquear el programa.

馃搶 Ejemplo de salida si el usuario ingresa texto:

Error: Debes ingresar un n煤mero v谩lido.

3️⃣ Capturar Errores Espec铆ficos en Python

Podemos capturar distintos tipos de errores para manejarlos de forma adecuada.

馃敼 Ejemplo con m煤ltiples excepciones:

try: lista = [1, 2, 3] indice = int(input("Introduce un 铆ndice: ")) print(f"Elemento en la posici贸n {indice}: {lista[indice]}") except ValueError: print("❌ Error: Debes ingresar un n煤mero.") except IndexError: print("❌ Error: 脥ndice fuera de rango.")

馃搶 Prueba este c贸digo e introduce:
1 → Muestra el elemento correcto.
100 → Muestra un IndexError.
"hola" → Muestra un ValueError.


4️⃣ Usar finally para C贸digo que Siempre se Ejecuta

El bloque finally se ejecuta siempre, independientemente de si hubo un error o no.

馃敼 Ejemplo de finally en manejo de archivos:

try: archivo = open("datos.txt", "r") contenido = archivo.read() print(contenido) except FileNotFoundError: print("❌ Error: El archivo no existe.") finally: print("馃搶 Cierre de recursos completado.")

馃搶 Si el archivo datos.txt no existe, el programa mostrar谩:

Error: El archivo no existe. 馃搶 Cierre de recursos completado.

finally es 煤til para liberar recursos (como archivos o conexiones a bases de datos).


5️⃣ Crear Nuestras Propias Excepciones

Podemos definir nuestras propias excepciones personalizadas con raise.

馃敼 Ejemplo de excepci贸n personalizada:

def verificar_edad(edad): if edad < 18: raise ValueError("❌ Error: Debes ser mayor de edad.") print("✅ Acceso permitido.") try: edad = int(input("Introduce tu edad: ")) verificar_edad(edad) except ValueError as e: print(e)

馃搶 Si el usuario ingresa una edad menor a 18:

Error: Debes ser mayor de edad.

raise permite lanzar un error con un mensaje personalizado.


馃殌 Conclusi贸n

try-except evita que los programas se bloqueen por errores inesperados.
✅ Podemos capturar errores espec铆ficos para manejarlos mejor.
finally se usa para cerrar recursos como archivos o bases de datos.
Podemos definir excepciones personalizadas con raise.

馃搶 Pr贸ximo post: Ejercicios pr谩cticos de manejo de excepciones en Python.

馃搨 C贸digo disponible en mi GitHub: github.com/josecodetech

馃帴 Aprende con mis videos en YouTube: https://www.youtube.com/@josecodetech

馃挰 ¿Alguna vez has tenido un error inesperado en Python? Cu茅ntamelo en los comentarios.


No hay comentarios:

Publicar un comentario

Se procedera a revision para su pronta publicacion en caso de que no incumpla las normas de blogger.