Qué significa RuntimeError y cómo solucionarlo
Referencia del error
RuntimeError
Lenguaje
Severidad
MediaCuá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.
Errores relacionados
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
Código que causa el error
d = {"a": 1, "b": 2}
for key in d:
if key == "a":
d["c"] = 3Error 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