![]() |
Excepciones - Origen función y linea
Hola:
¿Hay alguna forma de saber de donde se originan las excepciones, es decir, la función donde se ha producido, fichero y linea del código fuente?. Un saludo, JL |
|
En las mismas opciones de DELPHI.
Menu Tools - Debugger Options - Languaje Exceptions - Stop on Delphi Exceptions |
Excepciones
No me refería a eso.
Quiero crear una rutina que cuando reciba una excepcion me genere un fichero log, donde me informe del error y la línea, fichero del codigo fuente. Algo como el programa de eurekalog Un saludo, JL |
|
Gracias, pero no quiero comprar ni el producto de Eureka, ni tampoco el de mad. Solo quiero saber si alguien lo ha intentado hacer.
Un saludo, JL |
|
Gracias, delphius.
Aunque no comprendo que ha estas alturas que llevamos no se haya ampliado la clase expceción, para poder averiguarlo en modo runtime, tal como lo hace otros lenguajes (Java y .Net). De todas maneras, investigaré el ejemplo que me has indicado. Un saludo, |
Yo, para eso, extiendo Exception y añado al constructor un par de parámetros para indicar el archivo y el procedimiento y función. Por ejemplo:
No es lo mismo, pero ayuda bastante. |
Cita:
Para que Delphi conozca esa información necesita los ficheros de Debug (información adicional); Esa información normalmente no se usa o no se necesita. Si ampliaras la clase Exception para extraer esa información tal vez estarías obligando a añadir esos ficheros siempre, cosa que no es en absoluto práctica. |
NO ha punto de comparación !!!
El JVM utiliza un lenguaje intermedio de bajo nivel, que es de mayor nivel que el lenguaje de maquina el cual es la plataforma del lenguaje como tal y le permite ser multiplataforma. Hasta donde yo se NO se puede manejar al antojo las funciones propias de la plataforma porque esto rompería con la filosofía, entonces con dicha imposibilidad viene un manejo de excepciones a un nivel más accesible al programador propio del JVM. El .NET también utiliza un lenguaje intermedio y nativo ejecutado en una maquine virtual que vislumbra la misma filosofía del JVM. Lo que al igual que el anterior le da otra visión al control de excepciones. Pero qué hay con Delphi? (NO hablamos de Delphi .NET), éste desde siempre ha permitido el embebido de lenguaje de máquina, lo que facilita el acceso a cualquier parte de la memoria virtual del propio proceso, la libre modificación del entorno y de uno mismo sin ningún lenguaje intermedio entre el lenguaje de programación y el de máquina. Este nos permite acceder al segmento del contexto fs:[0], y con el mismo al controlador de excepciones propio de la librería ntdll.dll del Güindos, el cual comunica las excepciones de menor nivel al proceso. Aquí un ejemplo fácil de usar y gratuito. Espero no haber sido algo técnico pero repito el primer enunciado... Saludos |
| La franja horaria es GMT +2. Ahora son las 05:36:51. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi