Duda, capturar linea de error

Iniciado por yovaninu, 15 Agosto 2009, 01:49 AM

0 Miembros y 1 Visitante están viendo este tema.

yovaninu

Que tal con todos, quiza ustedes pueden ayduarme en esto, desearia poder capturar la linea de codigo que produce un error en mi aplicacion, imaginemos que tenemos un proyecto de 1000 lineas y en la 900 se produce una division entre cero, la descripcion lo ebtengo con err.description y el tipo de error con err.number... pero como obtengo la linea que produce dicho error, es decir habra alguna forma de que el programa responda diciendo que "hubo un error en la linea 900" ????

Un saludo a todos.

MCKSys Argentina

Hola!

Hasta donde sé, no hay forma de hacer eso.

Pero, lo que puedes hacer, es utilizar el "On Error Goto Etiqueta". De esta forma, puedes segmentar el codigo. Mientras mas etiquetas pongas, mayor "precisión" tendrás de dónde ocurre el error.

Otra cosa "rápida", no se me ocurre ahora...

Saludos!


MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


seba123neo

con Erl() pero no creo que tengas ganas de ponerle el numero a cada linea de codigo...lo mejor es hacer un codigo sin errores...
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

yovaninu

Cita de: seba123neo en 15 Agosto 2009, 04:56 AM
con Erl() pero no creo que tengas ganas de ponerle el numero a cada linea de codigo...lo mejor es hacer un codigo sin errores...
Erl()???? vaya no lo conocia en verdad... gracias Seba, lo busque en el tio google y pues lo encontre, es cierto que debe añadirse numeros de linea, ya que sin ello la funcion Erl() devolvera cero, pero ello no supone problema si usamos la herramiena MZTools3VB6Setup descargable desde microsoft, es una muy buena herramienta que nos permite por ejemplo analizar el codigo, ver variables o modulos fantasmas y entre otras cosas muy utiles enumerar automaticamente todo un procedimiento que es lo que necesita esta rara y funcion Erl(), lo he probado con el siguiente codigo básico:

Un Command1 en un Form1

Código (vb) [Seleccionar]

Private Sub Command1_Click()
10     On Error GoTo error
       Dim c As Integer
       Dim a As String
20     a = "hola"
30     a = "una linea mas"
40     c = 5 / 0 'provocamos el error
50     Exit Sub
       
error:
60     MsgBox Err.Description & " detectado en la linea:" & Erl()
End Sub


y pues funciona como queria exactamente, otra vez gracias... asi podre perfeccionar aun mas mi proyecto, y a lo de hacer un codigo sin errores, recordad que no existe ni existira programa perfecto.

Un saludo.

cobein

Podes usar mztools que tiene una opcion para enumerar las lineas automaticamente.
http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.