Shell   26-10-2022, 16:15
#1
Buenas!.

Me supongo que hay errores que se puede hacer y otros no. Probablemente por la sencillez del error.

En la clase Error disponemos de distintas propiedades:

Backtrace
Class
Code
Text
Where

Código:
..
 If Error Then Message.Error(Error.Text & gb.NewLine & Error.Where & gb.NewLine & Error.Code & gb.NewLine & Error.Class)
..

Error.Class no se puede concatenar. Smile
Puedo usar Error.Class.Name. Pero que me diga FMain, con la cantidad de código que puede tener.
Fulanito es el culpable!. El FMain!. Que se le caiga la cara de vergüenza!.

Aunque no aparece un texto o algo que lo diga, debe ser la pila de llamadas otra forma de tracear el error.
En mi caso, aparece esto:

[Imagen: McLWc88.png]

Ahí puedo seleccionar con el ratón dos lugares distintos con. Viendo que el error parte desde la instrucción más inferior.
FMain.btdnSelectDir_Click.54

Siendo esta la instrucción la que lo produce:

Código:
 TabStripExterior.Count = grupoextensiones.Count

Ademas de que no se pueda concatenar una clase como si fuera una cadena, naturalmente.

Por cierto, BackTrace. Devuelve un array.
 
Cita: 
Devuelve un seguimiento del estado de la pila de llamadas de función cuando ocurrió el último error.
La primera entrada de la matriz de cadenas es la llamada de función más profunda.
Si no había información de depuración disponible, o si no hubo ningún error, esta propiedad devuelve NULL.

Es una traducción con Google Translator. ¿ Qué es eso de la llamada de función más profunda ?. Vaya traducción.
Si, es la primera claro de la pila de llamadas, la de más abajo. Pero eso de profunda.

Lo que quiero decir que cuando se produce error, ya que lo hay. Este array que devuelve suele ser nulo.
¿ Eso es normal ?. Huh


Saludos

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
Shordi   26-10-2022, 19:41
#2
Nunca he usado BackTrace ni Class ni code.

basta con añadir al final de cada función

Código:
Catch
   Print error.text;;error.where 'si lo quieres en la consola de gambas para depuraciones o
   message.Error(Error.text & " - " & Error.where)
End

Saludos

Donde dice "...basta con..." quiere decir " ...a mí me basta con...", naturalmente.

Big Grin Big Grin
Última modificación: 26-10-2022, 19:41 por Shordi.

No podemos regresar
Shell   26-10-2022, 20:27
#3
(26-10-2022, 19:41)Shordi escribió: Donde dice "...basta con..." quiere decir " ...a mí me basta con...", naturalmente.

Big Grin

Tiene que ser terrible cuando el programa tenga tropecientas líneas.

Gambas tiene un control llamado gb.debug pero no lo he visto aún en la práctica.

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
  
Usuarios navegando en este tema: 4 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.