Lingua-e
Python

¿Qué significa TimeoutError?

← Errores

TimeoutError se lanza cuando una operación de socket o E/S supera el límite de tiempo establecido por un timeout. Es una subclase de OSError. Muchas librerías de terceros (requests, httpx, asyncio) envuelven esto como su propia excepción de timeout.

Por qué ocurre

  • Se supera un valor de socket.settimeout() antes de que se complete una conexión o lectura.
  • Un servidor remoto está sobrecargado y no responde dentro del tiempo permitido.
  • La congestión de red o la pérdida de paquetes hace que la operación se detenga.
  • El timeout de asyncio.wait_for() se activa antes de que la corrutina termine.

Ejemplos

Python

Código que causa el error

import socket

s = socket.socket()
s.settimeout(2)
s.connect(("10.255.255.1", 80))  # unreachable host

Error en la terminal

TimeoutError: timed out

Cómo solucionarlo

Siempre establece timeouts explícitos en las operaciones de red en lugar de esperar indefinidamente. Implementa lógica de reintento con retroceso exponencial para timeouts transitorios. Distingue entre timeouts de conexión (servidor inalcanzable) y timeouts de lectura (servidor conectado pero lento en responder).

Código corregido

import socket

s = socket.socket()
s.settimeout(5)
try:
    s.connect(("10.255.255.1", 80))
except TimeoutError:
    print("Connection timed out, host unreachable")
finally:
    s.close()

Errores relacionados

¿Listo para practicar tu inglés en el trabajo?

Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.

Prueba Lingua-e gratis