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...
¿Programando en inglés?
Para arreglar esto, leíste inglés técnico real. Lingua-e tiene ejercicios gratis hechos igual: dailys, code reviews y situaciones reales de trabajo.
Practicar inglés para developers gratis