![]() |
Numero de linea del programa en DELPHI
Muy buenas:
Tengo algunos problemas muy raros con mis aplicaciones y quiero probar lo siguiente. Mi aplicacion esta en Delphi 5 y se conecta por ODBC a MySql. Muchas veces me da errores raros y quiero hacer un Try except y que en el except me diga en que linea del programa ha fallado. Si alguien supiera como hacerlo me ahorraria un monton de tiempo de investigacion. Muchas gracias |
Recuerdo haber leído algun artículo que explicaba de una forma básica cómo hacerlo. Incluso creo recordar que alguna vez en el foro se ha hablado de ello.
Otra opción es mirar algun paquete comercial que te de el trabajo hecho tipo: * MadExcep * Exception Magic * EurekaLog |
Hola:
vale, es que acabo de mirar cosas por ahi y hablan de lo que ya tenemos hecho, que es encerrar el codigo en un Try Except. Seria mas preciso saber en que linea dio el error, supongo (no lo he investigado aun) que si se crea una TException Class o algo parecido, tendria que tener alguna propiedad que nos indiquen cosas. Saludos |
Cita:
Piensa que tu ejecutable, el programa, final no se organiza con líneas de código como el que programas en Delphi. Una vez compilado y linkado el ejecutable es otro programa diferente (por decirlo así) en un lenguaje diferente (código máquina). Cuando una de esas líneas en código máquina falla, no tienes la correspondencia con el programa original, por lo tanto no es posible saber la línea que falló (a no ser qué...). A no ser que en tu programa guardes información de Debug y en ejecución intentes utilizar esa información de Debug para conocer cual es la línea original del programa que corresponde a la que ha fallado. Eso es algo que no es sencillo y que hacen estos paquetes, de ahí que cuando "salte" una excepción muestren información extendida como la que se ve en las imágenes que he adjuntado en el anterior post (entre esas informaciones está la pila de llamadas, el número de línea,...) |
Claro
Hola:
Es como lo dices, lo que se me ocurrio es numerar en una variable cada 10 lineas sumarle entonces sabes en todo momento en que trozo de codigo te ha fallado y al dar la excepcion despliegas el numero de linea ultimo. Con esto sabras prefectamente que esta despues de esa linea y antes de la siguiente. creo que hare eso, por ahora, total, tengo muy pocos procesos muy criticos y esa solucion me sirve. Gracias |
Cita:
A medida que vayas modificando tu código no se cómo va a quedar. |
Naturlich
Claro, pero de cualquier manera, no tengo otra solucion, ademas esa solucion no sera eterna, el codigo de esa unidad casi no se toca.
Por otro lado si que es verdad que algun otro programador o yo mismo no recuerde lo que he hecho antes y lo enredemos mas de lo que esta. bueno, muchas gracias por entreneterte con mis tonterias. saludos JoSeX |
Échale un vistazo a esta página. Tal vez te pueda servir, Explica un poco pòr encima el funcionamiento de los MAP files. A partir de ahí puedes continuar buscando.
Esta también es interesante. |
Yo uso el Eurekalog (mencionado en el segundo mensaje por Neftali) y me va muy bien. Al saltar una excepción te ofrece mucha mas información y el Call stack es muy completo y claro (numero de linea, instrucción llamada, ves los hilos... etc).
Estoy muy contento con el EurekaLog. Saludos. |
La franja horaria es GMT +2. Ahora son las 20:38:39. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi