Skip to content

Errores comunes con excepciones en Python (y cómo evitarlos)

Ben Kemp | Python/SQL/PowerBI/Excel Tutorials edited this page Jan 14, 2026 · 1 revision

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.


Error 1: Usar except: genérico sin saber qué falló

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")

Error 2: Silenciar excepciones

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)

Error 3: Usar excepciones como control de flujo normal

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.

Error 4: Capturar demasiada lógica dentro del try

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")

Error 5: No capturar errores esperados

archivo = open("datos.txt")

❌ Puede fallar y detener el programa.

Cómo evitarlo:

try:
    archivo = open("datos.txt")
except FileNotFoundError:
    print("Archivo no encontrado")

Error 6: No usar finally para limpieza

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.

Error 7: No aprovechar else

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.

Error 8: Capturar excepciones en orden incorrecto

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")

Error 9: Ignorar el mensaje de la excepción

except ValueError:
    print("Error")

⚠ Pierdes información útil.

Cómo evitarlo:

except ValueError as e:
    print("Detalle:", e)

Error 10: No documentar por qué se captura una excepción

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

Clone this wiki locally