-
Notifications
You must be signed in to change notification settings - Fork 0
Errores comunes con excepciones en Python (y cómo evitarlos)
El manejo de excepciones hace que el código sea más robusto, pero mal usado puede ocultar errores, dificultar la depuración y generar comportamientos inesperados.
En esta página revisamos errores reales y frecuentes, explicamos por qué ocurren y mostramos cómo evitarlos correctamente.
try:
x = int("abc")
except:
print("Error")❌ Captura cualquier excepción, incluso errores graves.
Cómo evitarlo:
try:
x = int("abc")
except ValueError:
print("Error al convertir a entero")try:
resultado = 10 / 0
except ZeroDivisionError:
pass❌ El error ocurre, pero no sabes que pasó.
Cómo evitarlo:
except ZeroDivisionError as e:
print("Error:", e)try:
valor = diccionario["clave"]
except KeyError:
valor = None⚠ Funciona, pero no es ideal.
Cómo evitarlo:
valor = diccionario.get("clave")✔ Más claro y eficiente.
try:
x = int(texto)
resultado = x / y
guardar(resultado)
except Exception:
print("Error")❌ No sabes qué parte falló.
Cómo evitarlo:
try:
x = int(texto)
except ValueError:
print("Error de conversión")archivo = open("datos.txt")❌ Puede fallar y detener el programa.
Cómo evitarlo:
try:
archivo = open("datos.txt")
except FileNotFoundError:
print("Archivo no encontrado")archivo = open("datos.txt")
contenido = archivo.read()❌ El archivo puede quedar abierto si ocurre un error.
Cómo evitarlo:
try:
archivo = open("datos.txt")
contenido = archivo.read()
finally:
archivo.close()✔ O mejor aún: usar with.
try:
numero = int("5")
print(numero)
except ValueError:
print("Error")⚠ Funciona, pero mezcla lógica.
Cómo evitarlo:
try:
numero = int("5")
except ValueError:
print("Error")
else:
print(numero)✔ Código más claro.
try:
int("abc")
except Exception:
print("Error general")
except ValueError:
print("Error de valor")❌ El except ValueError nunca se ejecuta.
Cómo evitarlo:
except ValueError:
print("Error de valor")
except Exception:
print("Error general")except ValueError:
print("Error")⚠ Pierdes información útil.
Cómo evitarlo:
except ValueError as e:
print("Detalle:", e)try:
procesar()
except KeyError:
pass❌ Nadie sabe por qué se ignora el error.
Cómo evitarlo:
except KeyError:
# Clave opcional, se ignora si no existe
pass-
Reglas prácticas para manejar excepciones
-
Captura solo excepciones que entiendas
-
Prefiere errores específicos
-
No ocultes errores sin explicación
-
Usa else y finally correctamente
-
Mantén el bloque try lo más pequeño posible
-
Usa with cuando trabajes con recursos
Conclusión
El mal manejo de excepciones no suele romper el código inmediatamente, pero sí rompe la confianza y la mantenibilidad.
Un buen manejo de errores hace el código:
- Más claro
- Más seguro
- Más profesional
Wiki educativa con ejemplos prácticos de Python en español, enfocada en aprendizaje claro y aplicable.
Todos los ejemplos muestran código y salida real.
📘 Índice principal: Home
🔁 Contenido actualizado regularmente
🌐 Relacionado: SolveConPython (versión en español en desarrollo)