Lingua-e
Python

¿Qué significa RuntimeError?

← Errores

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.

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ómo solucionarlo

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.

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)

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