close Warning: Can't synchronize with repository "(default)" (/var/svn/mms does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 13 years ago

Last modified 13 years ago

#1004 closed doubt

Error al crear NameBlocks que no existen — at Version 1

Reported by: imendez Owned by: Pedro Gea
Priority: major Milestone: Maintenance
Component: General Keywords:
Cc: atorre@…

Description (last modified by Pedro Gea)

Hola, a menudo me encuentro con errores del tipo:

NameBlock est = MMS::Container::GetEstimation_Load(sEstInfo, Repo);
Warning: [20] [@MainContainer$GetObject_Load] No se ha encontrado el objeto 'dd' (Estimation).
ERROR: [26] Fallo en la función "GetObject_Load"

La solución supongo que es hacer primero un Find, pero ¿no se podría hacer que estos métodos hicieran primero el Find y, en caso de no encontrar el objeto, devolviera un NameBlock que indique que no se ha devuelto lo que se esperaba?

Es más, tal vez ya se esté haciendo internamente el Find; en ese caso, sería simplemente cambiar la salida.

Un saludo.

Change History (1)

comment:1 Changed 13 years ago by Pedro Gea

Description: modified (diff)
Milestone: Maintenance
Status: newaccepted
version: 0.6

La situación que comentas es como dices, si una función que devuelve un objeto falla, se muestra un error y no se crea objeto alguno.

Planteas que podría devolverse un NameBlock cualquiera o "por defecto" que represente a la salida fallida, pero en mi opinión eso sólo retrasará los próximos errores, ya que si creas o pides un objeto, no es sino para llamar luego a alguno de sus métodos.

El error no es más que uno del tipo:

Set s = [[ 2, 3 ]];
Real a = s[3];
ERROR: [1] Intento de acceso al elemento 3-esimo de un conjunto de 2 elementos
ERROR: [2] a no se pudo crear.

La solución pasa por comprobar la viabilidad de la llamada con mecanismos del tipo "Find" como comentas o quizá comprobar si la salida se creó o si el número de errores (Real NError) aumentó.

Note: See TracTickets for help on using tickets.