Cargando...

Códigos de Error de Python

Los códigos de error de Python son excepciones que se generan cuando se producen operaciones incorrectas o no permitidas durante la ejecución de un programa. Comprender estos errores es fundamental para desarrollar sistemas robustos y confiables, ya que permite identificar rápidamente la fuente de fallos, corregirlos y aplicar soluciones efectivas. Los errores pueden aparecer durante la fase de desarrollo debido a problemas de sintaxis, uso de tipos de datos incorrectos, acceso a recursos inexistentes o lógica de programa defectuosa. Los conceptos clave incluyen sintaxis, tipos de excepciones, técnicas de depuración y manejo de errores. Este manual proporciona un listado completo de los errores más comunes de Python, describe las condiciones que los generan, muestra ejemplos prácticos y enseña las mejores prácticas para gestionarlos. El lector aprenderá a identificar, capturar y corregir errores, aplicando estrategias avanzadas de depuración que aumentan la estabilidad y la mantenibilidad de aplicaciones backend.

Consideremos un ejemplo práctico: un sistema que procesa entradas del usuario, lee archivos y se conecta a bases de datos. En estos casos pueden surgir errores como FileNotFoundError, ValueError o ZeroDivisionError. Para asegurar la fiabilidad, las operaciones críticas se colocan dentro de bloques try, y cada excepción se maneja con bloques except específicos. Esto permite responder adecuadamente a cada error, registrar eventos y aplicar soluciones alternativas. El bloque finally asegura la liberación de recursos, como archivos abiertos o conexiones a la base de datos, incluso si ocurre un error. Este enfoque evita fallos inesperados, mejora la mantenibilidad del código y garantiza un funcionamiento estable de sistemas backend en producción.

Example

python
PYTHON Code
def procesar_datos():
try:
# NameError: uso de una variable no definida
print(variable_no_definida)

# ZeroDivisionError: división por cero
resultado = 10 / 0

# ValueError: conversión inválida
numero = int("abc")

# FileNotFoundError: archivo no encontrado
with open("archivo_inexistente.txt", "r") as f:
contenido = f.read()

# AttributeError: llamada a método inexistente
[].appendx(1)

except NameError as ne:
print(f"Capturado NameError: {ne}")
except ZeroDivisionError as zde:
print(f"Capturado ZeroDivisionError: {zde}")
except ValueError as ve:
print(f"Capturado ValueError: {ve}")
except FileNotFoundError as fe:
print(f"Capturado FileNotFoundError: {fe}")
except AttributeError as ae:
print(f"Capturado AttributeError: {ae}")
except Exception as e:
print(f"Capturado otra excepción: {e}")
finally:
print("Limpieza de recursos completada.")

procesar_datos()

📊 Comprehensive Reference

Error Descripción Cuándo ocurre Ejemplo Notas
SyntaxError Error de sintaxis Código incorrecto eval('x === 2') Ocurre en tiempo de compilación
IndentationError Error de indentación Indentación incorrecta if True:\nprint("Hola") Subtipo de SyntaxError
TabError Mezcla de tabulación y espacios Uso de tabs y espacios juntos <tab> <space> print("Hola") Requiere consistencia en la indentación
NameError Variable no definida Uso de variable inexistente print(x) Común durante depuración
TypeError Tipo incorrecto Operación con tipo incompatible 5 + "5" Python es dinámicamente tipado
ValueError Valor inválido Conversión o valor incorrecto int("abc") Validar datos de entrada
IndexError Índice fuera de rango Acceso a índice inexistente lst = []; lst[1] Verificar longitud de lista
KeyError Clave inexistente Acceso a clave no presente d = {}; d['x'] Usar dict.get() para seguridad
AttributeError Atributo inexistente Llamada a método no existente [].appendx(1) Verificar nombre de método
ZeroDivisionError División por cero Divisor es cero 10 / 0 Verificar divisor
ImportError Módulo no encontrado Módulo ausente import modulo_inexistente Comprobar instalación
ModuleNotFoundError Módulo no encontrado Módulo ausente import no_existe Python 3.6+
FileNotFoundError Archivo no encontrado Archivo ausente open("no_existe.txt") Verificar ruta
IsADirectoryError Se esperaba archivo, es directorio Abrir directorio open("carpeta") Depende del OS
NotADirectoryError Se esperaba directorio, es archivo os.listdir("archivo.txt") Depende del OS
PermissionError Permisos insuficientes Acceso denegado open("/root/file") Verificar permisos
OSError Error de sistema Problema de OS os.remove("/root/file") Clase base de otros errores
OverflowError Desbordamiento Valor demasiado grande 2.0**10000 Raro en Python 3
RecursionError Recursión demasiado profunda Muchas llamadas recursivas def f(): f(); f() sys.setrecursionlimit()
MemoryError Memoria insuficiente Datos muy grandes a = 'a'*10**10 Depende del sistema
StopIteration Iterador agotado Iterador vacío next(iter([])) Iteradores personalizados
AssertionError Falló assert assert False Validar condiciones
FloatingPointError Error punto flotante Operación FP inválida numpy.seterr(all='raise') NumPy
UnicodeError Error de codificación/decodificación "ü".encode("ascii") Validar encoding
UnicodeDecodeError Error de decodificación b'\xff'.decode('utf-8') Lectura de archivo
UnicodeEncodeError Error de codificación "ü".encode("ascii") Encoding incorrecto
RecursionWarning Aviso de recursión Recursión profunda import warnings No crítico
DeprecationWarning Función obsoleta Uso de función antigua warnings.warn("deprecated") Migrar función
RuntimeWarning Aviso de ejecución Problema potencial import warnings No crítico
FutureWarning Aviso futuro Cambios futuros warnings.warn("future") Compatibilidad futura
UserWarning Aviso de usuario Aviso personalizado warnings.warn("user") No crítico
PendingDeprecationWarning Próximo a obsoleto Función será removida warnings.warn("pending") Raro
ResourceWarning Recurso no liberado Archivo no cerrado open("file") Python 3+
ArithmeticError Error aritmético Operación inválida int("x")/0 Clase base
BufferError Error de buffer Operación inválida en buffer memoryview(b'').release() Raro
ConnectionError Error de conexión Problemas de red requests.get("bad_url") Depende de red
BrokenPipeError Pipe roto Escribir en pipe cerrado os.write(fd, b'data') Unix
ChildProcessError Error de proceso hijo Problema en proceso hijo os.waitpid(-1) Raro
EOFError Fin inesperado de archivo Fin de input input() EOF Input vacío
EnvironmentError Error de entorno Problema de OS/entorno os.remove("/root/file") Clase base OSError
GeneratorExit Salida de generador gen.close() Generadores
IOError Error de I/O Fallo lectura/escritura open("/root/file") Python 3 -> OSError
InterruptedError Interrumpido Llamada del sistema interrumpida os.read(fd, 0) Unix
LookupError Error de búsqueda Búsqueda inválida d['x'] Clase base Lookup
ReferenceError Referencia inválida Weakref expirado import weakref Raro
RuntimeError Error en ejecución raise RuntimeError() Error general
StopAsyncIteration Fin async iterador async for Python 3.5+
SyntaxWarning Aviso de sintaxis Sintaxis sospechosa warnings.warn("syntax") No detiene programa
SystemError Error de sistema Error interno Python sys._getframe(0) Raro
SystemExit Salida de sistema sys.exit() Termina programa
TimeoutError Tiempo agotado Timeout operación socket.settimeout() Red
UnboundLocalError Variable local no asignada Uso antes de asignar x=1; def f(): print(x); x=2 Subtipo NameError
ZeroDivisionError División por cero Divisor cero 10 / 0 Verificar divisor

🧠 Pon a Prueba tu Conocimiento

Listo para Empezar

Test Your Knowledge

Prueba tu comprensión de los códigos de error de Python

3
Preguntas
🎯
70%
Para Aprobar
♾️
Tiempo
🔄
Intentos

📝 Instrucciones

  • Lee cada pregunta cuidadosamente
  • Selecciona la mejor respuesta para cada pregunta
  • Puedes repetir el quiz tantas veces como quieras
  • Tu progreso se mostrará en la parte superior