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
Milestone: | → Release 0.6 |
---|---|
Resolution: | → fixed |
Status: | new → closed |
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:
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:
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.