Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: yovaninu en 15 Agosto 2009, 01:49 am



Título: Duda, capturar linea de error
Publicado por: yovaninu en 15 Agosto 2009, 01:49 am
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.


Título: Re: Duda, capturar linea de error
Publicado por: MCKSys Argentina en 15 Agosto 2009, 02:21 am
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!




Título: Re: Duda, capturar linea de error
Publicado por: 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...


Título: Re: Duda, capturar linea de error
Publicado por: yovaninu en 15 Agosto 2009, 05:52 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
  1. Private Sub Command1_Click()
  2. 10     On Error GoTo error
  3.       Dim c As Integer
  4.       Dim a As String
  5. 20     a = "hola"
  6. 30     a = "una linea mas"
  7. 40     c = 5 / 0 'provocamos el error
  8. 50     Exit Sub
  9.  
  10. error:
  11. 60     MsgBox Err.Description & " detectado en la linea:" & Erl()
  12. End Sub
  13.  

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.


Título: Re: Duda, capturar linea de error
Publicado por: cobein en 15 Agosto 2009, 06:14 am
Podes usar mztools que tiene una opcion para enumerar las lineas automaticamente.