FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Un ejemplo, please
Que corcholis, estoy intentando obtener resultados como los que menciona Lepe, pero no consigo ver esta tipo de info:
Cita:
¿Pero como puedo recoger los errores de ejecución? ¿Podrías ponernos un ejemplo Lepe, de cómo utilizarlo?, ¿cómo llamar a la funciónLogException(ExceptObj: TObject; ExceptAddr: Pointer; IsOS: Boolean):string y recoger el string en el map o en un .log con el TJvLogFile? Gracias, profe... y perdona mi torpeza. |
#2
|
|||
|
|||
El ejemplo
Me voy a contestar a mi mismo, quizá para no darme vergüenza, ...pero alguien más puede caer. Me ha costado q en cupiera en la cabezota. Quizá por lo puramente simple.
Lepe: te mereces un altar, si me mandas una fotillo, así con un poco de aura, me la pego en el margen de mi pantalla. Esto es alu cinate e im presionante, chicos (y todo en 2 palabras, ;-) ) el resultado en el log: Código:
[10/10/2005 21:29:46]Exception EAccessViolation: Access violation at address 00524D84 in module 'PbaDBX.exe'. Write of address 00000000 (OS Exception) Exception UnitName : Unit1 Procedure : TForm1.BotonErrorClick Line : 210 OffsetLine : 4 Deep of Except frame-dump : 3 UnitName : Controls Procedure : TWinControl.MainWndProc SourceName : Line : 0 UnitName : Controls Procedure : TWinControl.MainWndProc SourceName : Line : 0 //Fin reporte// - ERROR > ...aaauuuuammmmm ...(te estoy cantando unos canticos) ...admirado y venerado Lepe. |
#3
|
||||
|
||||
Saludos
Cita:
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
#4
|
||||
|
||||
Los que de verdad tienen el mérito son los que empezaron a trabajar con su antecesor ,(que supongo era el mapFileSource), despues los de la JVCL se lo han currado hasta quedarse calvos, para que con un solo clic de ratón se añada toda esa info.
Yo lo único que he hecho es cambiar un procedure por un function.... y poco más. Así que no teneís que admirarme.... más bien hacer un depósito en mi cuenta corriente Venga, un saludo compañeros. |
#5
|
|||
|
|||
siguiendo los pasos de Lepe ..
Lepe , estoy tratando de seguir tus consejos ... y he llegado al punto de conseguir el log con el error , pero no me devuelve la linea , ni el pas donde se produjo .. talvez tenga que ver con el 'tipo de error' (ante la ignorancia , viene el delirio ), porque en los casos:
error 1: (producido con una query poniendo una instrucion SQL con error de sintacsis..al hacer el open da el error) la info que me da es: UNITNAME: dice OLEDBAccess en lugar de la unit que se produjo ... Porcedure : ToleDbConnection.oledberror Line : 0 y en los sucesivos Unitname ..( 2 en este caso ) todos line 0 ----- Caso error 2: (producido al pasar mal el valor de un parametro a un Store Procedure) de da : Unitname : sysutils prodecure : convertErrorFmt Line : 0 y en los sucesivos Unitname ..en el tercero si me da una referencia al pas uMain.pas Line : 2224 (que no es exactamente el ExecProc sino el showmessage del except del try del ExecProc ) ----------- 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 > no se cuan lejos estare de que esto sea el log 'optimo y correcto' Saludos y gracias Ingel |
#6
|
||||
|
||||
Cita:
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:
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:
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:
saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#7
|
|||
|
|||
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:
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 |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
|