PDA

Ver la Versión Completa : Control de excepciones


Angel.Matilla
30-03-2017, 13:30:00
Uno de los principales problemas que tenemos al tratar de gestionar un control de excepciones es saber dónde se ha producido el error para poder seguirle la pista. En otro foro tenemos una rutina para gestionar el evento Application->OnException pero, aun siendo muy buneo, tiene para mi el inconveniente de tener que andar declarando una variable en la que se guarda el formulario y la línea de cada evento con el riesgo evidente de que se nos olvide hacer esa declaración.

Buscando vine a dar con algún hilo en estos foros (¿Es posible obtener por código la línea o posición en donde se ha detectado un error? (http://www.clubdelphi.com/foros/showthread.php?t=32746) y otros más). En algunos de ellos se sugería el uso de JclDebug.pas en que parece han resuelto el tema de que la macro __LINE__ "viaje" con el error; el problema es que yo de Pascal prácticamente nada y prefiero tener que evitar andar instalando componentes externos.

Mis preguntas son:
Ese JclDebug.pas ¿puede utilizarse directamente en un proyecto Builder?
Si es así ¿cómo se puede acceder directamente o llamar a esas funciones?Voy un paso más allá. En ese evento OnException, para el que ya he encontrado la forma de saber el formulario del que procede el error sin necesidad de tener que pasar el valor en una variable, entre todos los métodos y/o propiedades de los componentes ¿existe al forma de saber en que evento original tuvo lugar el error? Me refiero si se produjo, por ejemplo, dentro de Button1Click.

Neftali [Germán.Estévez]
30-03-2017, 16:48:36
Lo mejor para eso es la pila de llamadas, pero integrar la unit que comentas de las VCL no es algo fácil.
Por otro lado hay componentes externos que te dan toda esta información y que funcionan muy bien. Tal vez en este caso sí esté justificado utiliar un paquete externo (ExcMag¡ix, Eureka, MadExcept,...)

Angel.Matilla
30-03-2017, 17:23:45
Gracias Neftalí. Seguiremos investigando. :o