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 14 years ago

Closed 14 years ago

#614 closed enhancement (fixed)

Mensajes de error de los métodos de una clase

Reported by: imendez Owned by: Pedro Gea
Priority: major Milestone: Release 0.6
Component: General Keywords:
Cc:

Description

Hola, frecuentemente me encuentro con dos tipos de error al usar (mal) el código de MMS, y creo que los mensajes de error podrían ser más claros:

1.- Al escribir mal el nombre de un método.
Por ejemplo, si ejecutamos:

NameBlock Ejemplo = model::GetDataSet(?)::GetVariableMAL("xxx");

TOL muestra el siguiente mensaje de error:

Warning: [5] La función :: ha fallado en : 
model::GetDataSet(?)::GetVariableMAL("xxx")
ERROR: [3] Ejemplo no se pudo crear.

¿No podría explicarse que el objeto model::GetDataSet(?) no tiene ningún método que se llame GetVariableMAL?

2.- Al intentar obtener un elemento que no existe.
Por ejemplo, al ejecutar el siguiente código:

NameBlock Ejemplo2 = model::GetDataSet(?)::GetVariable("xxx");

TOL muestra el siguiente mensaje de error porque no hay ninguna variable con ese nombre:

ERROR: [1] Fallo en la función "GetVariable"
[Call stack]
  [1] NameBlock model::model::model::dataSet::dataSet::dataSet::GetVariable (Anything info)
Warning: [4] La función :: ha fallado en : 
model::GetDataSet(?)::GetVariable("xxx")
ERROR: [2] Ejemplo2 no se pudo crear.

¿No podría explicarse que no existe ninguna variable con ese nombre? Creo que ocurre lo mismo con cualquier método del tipo GetXXX()

Un saludo.

Change History (1)

comment:1 Changed 14 years ago by Pedro Gea

Milestone: Release 0.6
Resolution: fixed
Status: newclosed

Respecto a la primera situación, MMS no puede hacer nada, es cosa de TOL, hay que redirigir allí el tique. Quizá podría indicarse al menos cual de los operadores :: falló con un mensaje del tipo:

Warning: [] La función :: ha fallado en : 
model::GetDataSet(?)::GetVariableMAL("xxx")
porque no se encuentra: 
GetVariableMAL("xxx")

o algo por el estilo, ya que el error se muestra igual si el fallo está en cualquiera de los tres trozos.

Respecto a la segunda situación, es cierto que el mensaje de error puede ser poco explícito, pero si falla un metodo Get:

ERROR: [1] Fallo en la función "GetVariable"

es porque no encuentra lo que le pides, no se me ocurre que otra razón. Otra cosa es que este mensaje se produzca al ejecutar esa llamada desde algunos mecanismos del proyecto y no se sepa ni quien da el error, ni que objeto se está intentando obtener.

También se sugirió (véase #413) que el método diga quién es el objeto, todo esto puede ser útil, pero no es tan intuitivo decidir todo lo que tiene que decir el error.

Remito la sugerencia de este tique a aquél (#413), para resolverlo conjuntamente.

Note: See TracTickets for help on using tickets.