Lingua-e
← Errores
Python

Qué significa RuntimeError y cómo solucionarlo

Referencia del error

RuntimeError

Lenguaje

Python

Severidad

Media

Cuándo ocurre

RuntimeError es una excepción genérica para errores que no encajan en una categoría más específica.

Posibles soluciones

Para modificar un dict de forma segura durante la iteración, itera sobre una copia (list(d.keys())) o recopila los cambios y aplícalos después del bucle. Para otros RuntimeErrors, lee el mensaje cuidadosamente ya que describe la operación inválida específica.

Más detalles

RuntimeError es una excepción genérica para errores que no encajan en una categoría más específica. La instancia más común es 'dictionary changed size during iteration', pero también cubre errores relacionados con hilos y generadores.

Por qué ocurre

  • Agregar o eliminar claves de un diccionario mientras se itera sobre él.
  • Llamar a una corrutina o generador en un estado inválido.
  • Llamada recursiva detectada en un contexto que prohíbe la recursión.
  • Usar una primitiva de hilo incorrectamente, como liberar un bloqueo no adquirido.

Posibles soluciones

Para modificar un dict de forma segura durante la iteración, itera sobre una copia (list(d.keys())) o recopila los cambios y aplícalos después del bucle. Para otros RuntimeErrors, lee el mensaje cuidadosamente ya que describe la operación inválida específica.

Ejemplos

Python

Código que causa el error

d = {"a": 1, "b": 2}
for key in d:
    if key == "a":
        d["c"] = 3

Error en la terminal

RuntimeError: dictionary changed size during iteration

Código corregido

d = {"a": 1, "b": 2}
to_add = {}
for key in d:
    if key == "a":
        to_add["c"] = 3
d.update(to_add)

Practica en inglés

¿Cómo le explicarías un RuntimeError a un compañero dev? Elige la frase correcta:

"I hit an error...

¿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