RX0297

Dominio: Ejecución

Mensaje de error

a %s se le entregó una cantidad distinta de operandos de la que lee su cuerpo (%s)

En el mensaje, %s marca un valor que el motor completa cuando lanza el error.

La historia

Este mensaje dice que a una función le llegaron más o menos operandos de los que su cuerpo esperaba leer. Veamos cómo pasa. Cuando haces una llamada, el trabajador del motor entrega al cuerpo de la función exactamente los operandos que viajaron en ella. Esa entrega se valida antes contra los parámetros declarados de la fila. Pero si el cuerpo, ya dentro, busca un operando en una posición donde no hay nada, o encuentra uno de sobra, no puede continuar. No va a leer más allá de lo que se le entregó, porque eso sería leer memoria que no es suya. Imagina un cajero que espera tres billetes y le dan dos: se detiene en lugar de inventar el tercero. Normalmente esto no es un error tuyo, sino una desincronización entre la declaración de la función y su código. El mensaje trae la prueba de conteo que falló. Si eres autor de scripts, repórtalo con la llamada exacta; si trabajas en el motor, compara los parámetros declarados con lo que el cuerpo lee.

Texto del catálogo de errores del motor de Rush.