Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-05-2008
jlrbotella jlrbotella is offline
Miembro
 
Registrado: ene 2007
Posts: 185
Poder: 20
jlrbotella Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 29-05-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 22
cHackAll Va por buen camino
uno, dos, etc...
Responder Con Cita
  #3  
Antiguo 29-05-2008
pcicom pcicom is offline
Miembro
 
Registrado: may 2003
Ubicación: MONTERREY MEXICO
Posts: 253
Poder: 24
pcicom Va por buen camino
En las mismas opciones de DELPHI.

Menu

Tools
- Debugger Options - Languaje Exceptions - Stop on Delphi Exceptions
__________________
Poco ha de saber el que no pregunta.. Yo por eso soy un pregunton
Responder Con Cita
  #4  
Antiguo 29-05-2008
jlrbotella jlrbotella is offline
Miembro
 
Registrado: ene 2007
Posts: 185
Poder: 20
jlrbotella Va por buen camino
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
Responder Con Cita
  #5  
Antiguo 29-05-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.440
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Uno, dos, tres,...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 29-05-2008
jlrbotella jlrbotella is offline
Miembro
 
Registrado: ene 2007
Posts: 185
Poder: 20
jlrbotella Va por buen camino
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
Responder Con Cita
  #7  
Antiguo 29-05-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 27
Delphius Va camino a la fama
Hola jlrbotella,
Creo que lo dicho aquí te puede servir.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #8  
Antiguo 29-05-2008
jlrbotella jlrbotella is offline
Miembro
 
Registrado: ene 2007
Posts: 185
Poder: 20
jlrbotella Va por buen camino
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,
Responder Con Cita
  #9  
Antiguo 30-05-2008
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.025
Poder: 27
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
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:
Código Delphi [-]
PROCEDURE Procedimiento;
BEGIN
  TRY
    // blablabla...
  EXCEPT
    ON Error: Exception DO RAISE MiClaseExcepcion.Create ('Unit.pas',  'Procedimiento', Error.Message);
    ON Error: MiClaseExcepcion DO RAISE Error;
  END;
END;
No es lo mismo, pero ayuda bastante.

Última edición por Ñuño Martínez fecha: 30-05-2008 a las 10:05:54.
Responder Con Cita
  #10  
Antiguo 30-05-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.440
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por jlrbotella Ver Mensaje
...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.
Creo que no se ha añadido porque hay diferencias sustanciales entre Java y .NET y el código que genera Delphi.
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.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #11  
Antiguo 30-05-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 22
cHackAll Va por buen camino
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
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Origen de datos vascomulc Conexión con bases de datos 1 19-03-2008 22:23:07
Origen del and per se and (&) marcoszorrilla La Taberna 0 17-01-2007 22:35:12
como saber numero de linea, nombre de archivo,funcion por codigo orfeo OOP 0 30-07-2004 18:42:15
¿Cómo borrar un grid sin tener que ir línea a línea? Isaac Varios 2 18-02-2004 16:13:14
Origen de un Correo AMG Internet 0 14-05-2003 23:02:45


La franja horaria es GMT +2. Ahora son las 01:35:30.


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
Copyright 1996-2007 Club Delphi