Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #21  
Antiguo 13-10-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Cita:
Empezado por ingel
la info que me da es:

UNITNAME: dice OLEDBAccess en lugar de la unit que se produjo ...
Porcedure : ToleDbConnection.oledberror
Line : 0
En el primer formulario que crea en tu applicación ¿has puesto uses lpjcldebug
como primer uses de la ventana?

¿Seguro que has hecho un Build Project o Build All? Si no lo haces, no se genera de
nuevo el archivo .map, por tanto las referencias son las antiguas, basta que
hayas creado nuevos procedimientos para que no sea capaz de encontrar las
entradas en el .map

Cita:
este es el txt tectual del log:

[13/10/2005 12:14:08]Exception EMSError: Línea 1: sintaxis incorrecta cerca de 'fromm'.>
[13/10/2005 12:39:11]Exception EConvertError: ' ' no es un valor entero válido

Exception
UnitName : SysUtils
Procedure : ConvertErrorFmt
Line : 0 OffsetLine : 0
Deep of Except frame-dump : 5
UnitName : SysUtils Procedure : ConvertErrorFmt SourceName : Line : 0

UnitName : uMain Procedure : TMainMenu.Button1Click SourceName : uMain.pas Line : 2224
UnitName : Controls Procedure : TWinControl.MainWndProc SourceName : Line : 0
UnitName : Controls Procedure : TWinControl.MainWndProc SourceName : Line : 0
El error que da al principio del texto es donde se hace un Raise
Exception.Create
, o un simple Raise en bloques try...except. El
Frame-Dump es el volcado de llamadas que se han hecho anteriormente hasta
llegar al que levantó la excepción; en este caso se ha podido rastrear 5
llamadas, si tu error está 7 llamadas antes, no vas a poder identificar la linea
exacta (auque esto ocurre muy pocas veces )
Cita:
Exception EConvertError: ' ' no es un valor entero válido
Esto significa que en Umain.pas linea 2224 estarás usando un
StrToInt(edit1.text), o algo similar, pero el usuario no ha escrito nada en
Edit1, Usa StrtointDef para pasar un valor por defecto.


Siempre vas a ver código de DB.pas, Sysutils.pas y similares, ya que es allí donde se levantan excepciones. Ahora te toca levantar tus propias excepciones:
Código Delphi [-]
  try
    Strtoint(edit1.text);
  except
     edit1.text:= '0';
     Raise Exception.Create('Quillo no seas malo y mete un numero en el Edit1');
  end;

saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #22  
Antiguo 14-10-2005
ingel ingel is offline
Miembro
 
Registrado: jun 2003
Posts: 239
Poder: 21
ingel Va por buen camino
ultimas consultas ..espero

Lepe , agradezco tu paciencia ...

necesito consultarte puntualmente :

1. El registro de los errores se generan siempre que se produce un error o
solo cuando se produce en una instruccion encerrada en un try /except ?

2. En el menu general del sistema que estoy modificando hay un procedure :

procedure TMainMenu.AppException(Sender: TObject; E: Exception);

y dentro de el se graba un log de errores (muy humilde ) .. pero mi duda
es si PASA POR AHI ..cada vez que se produce un error en CUALQUIER parte
del sistema .. o hay que poner el control de errores en cada Formulario.
(Lo que mas me interesa controlar son las grabaciones en la base de datos
que se hacen con Stores procedures)

3. Lo que me comentaste del control de las Ventanas ... donde iria ese codigo ?

4. el archvo log que se me genera es el siguiente:

Cita:
[13/10/2005 12:14:08]Exception EMSError: Línea 1: sintaxis incorrecta cerca de 'fromm'.>
[13/10/2005 12:39:11]Exception EConvertError: ' ' no es un valor entero válido>
[14/10/2005 8:17:11]Exception EConvertError: ' ' no es un valor entero válido>
[14/10/2005 8:19:53]Exception EConvertError: ' ' no es un valor entero válido>
[14/10/2005 8:24:54]Exception EConvertError: ' ' no es un valor entero válido>
[14/10/2005 8:35:41]Exception EConvertError: ' ' no es un valor entero válido
Exception
UnitName : SysUtils
Procedure : ConvertErrorFmt
Line : 0 OffsetLine : 0
Deep of Except frame-dump : 5
UnitName : SysUtils Procedure : ConvertErrorFmt SourceName : Line : 0
UnitName : uAbmCreditos Procedure : TFAbmCreditos.Button1Click SourceName : uAbmCreditos.pas Line : 989
UnitName : Controls Procedure : TWinControl.MainWndProc SourceName : Line : 0
UnitName : Controls Procedure : TWinControl.MainWndProc SourceName : Line : 0
y aca van 2 preguntillas...
como veras luego de Exception ... no me da info del PAS , ni la linea donde se produce el error (Line : 0 OffsetLine : 0)
es esto correcto ?..me da la linea en el frame-dump , pero solo una , el resto esta en 0 cero.

- y la otra .. me deja registrado el detalle de la ULTIMA exepcion ..las 5 primeras solo me queda [13/10/2005 12:14:08] ....
debo tener algun error al grabar el log?

un saludo , no te atormento mas ........por un rato
Responder Con Cita
  #23  
Antiguo 14-10-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Cita:
Empezado por ingel
1. El registro de los errores se generan siempre que se produce un error o
solo cuando se produce en una instruccion encerrada en un try /except ?
La respuesta es bastante amplia, te aconsejo que busques en estos foros por
"la cara oculta de delphi 4 ", en ese libro se explica como trabajar con las
excepciones, y en el foro hay muchas preguntas sobre este tema (nada más
tienes que buscar por "Exception"). Como comprenderás es necesario saber
qué es una Excepción, como se produce, y que hace, para despues entender
como capturarlas y manejarlas.

Cita:
Empezado por ingel
2. En el menu general del sistema que estoy modificando hay un procedure :

procedure TMainMenu.AppException(Sender: TObject; E: Exception);

y dentro de el se graba un log de errores (muy humilde ) .. pero mi duda
es si PASA POR AHI ..cada vez que se produce un error en CUALQUIER parte
del sistema .. o hay que poner el control de errores en cada Formulario.
(Lo que mas me interesa controlar son las grabaciones en la base de datos
que se hacen con Stores procedures)
Sin duda has querido decir TApplicationEvents ya que un MainMenu no tiene
la opción de Excepciones.

Si no hay try... except en ninguna rutina, la excepción llegará al Objeto
Application. Si hay try ... except, debes entender la palabra reservada
Raise; qué hace y si conviene usarla.
Cita:
Empezado por ingel
. Lo que me comentaste del control de las Ventanas ... donde iria ese codigo ?
Básicamente en el ApplicationEvents en el evento OnException, o donde
quiera que se produzca una excepción que no se controle con Raise;
Cita:
Empezado por ingel
4. el archvo log que se me genera es el siguiente:

y aca van 2 preguntillas...
como veras luego de Exception ... no me da info del PAS , ni la linea donde se produce el error (Line : 0 OffsetLine : 0)
es esto correcto ?..me da la linea en el frame-dump , pero solo una , el resto esta en 0 cero.
Yo no he creado el JCLDEBUG , así que no puedo contestarte. Lo que sí
puedo decir es que algunas veces tambien obtengo esos resultados. Pero
obviamente, el error lo tienes en TFAbmCreditos.Button1Click, y jclDebug te lo está diciendo.

Cita:
Empezado por ingel
- y la otra .. me deja registrado el detalle de la ULTIMA exepcion ..las 5 primeras solo me queda [13/10/2005 12:14:08] ....
debo tener algun error al grabar el log?
Utiliza siempre un Build Project en lugar de compilar. Esa situación jamás la he visto.

Que conste que no te estoy dando "largas", simplemente te toca a ti, buscar, leer, entender, comprobar y practicar. Es la única forma de aprender.

saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #24  
Antiguo 12-05-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Reabro este hilo solo para comentar un detalle solicitado por Dec Según la documentación de la JVCL 3, el archivo .map puede borrarse despues de hacer el "Buid Project", en el exe se incluye la información de depuración.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
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


La franja horaria es GMT +2. Ahora son las 02:53:29.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi