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
  #1  
Antiguo 24-02-2010
Neeruu Neeruu is offline
Miembro
 
Registrado: oct 2007
Posts: 490
Poder: 17
Neeruu Va por buen camino
Cool Liberar Exception

Hola a todos.. como están???...

Quiero consultar el siguiente caso....


Estoy probando la herramienta EurekaLog y en un momento de mi aplicacion creo una exception para que se ejecute un except de un try... y mi aplicacion termine....


Todo perfecto pero EurekaLog me dice que tengo una fuga de memoria en la creación de la exception... osea que es algo que me quedo creado y nunca lo destruí....

Mi fragmento de código es este:

Código Delphi [-]
      if Not FileExists(IniFile.ReadString('CONECCION', 'PATH', '')) then
        begin
          ShowMessage('No se puede localizar la Base de Datos...' +
            #13 + #10 + 'Comunicarse con el Servicio Técnico.');
          Raise Exception.Create('Error');
        end;

Ahora mi pregunta es:

Como liberar la memoria de esa excepción??? o como tratarla para que me genere una perdida de memoria....

Se que desactivando la opción de control de EurekaLog se soluciona... pero yo quiero mejorar mi programación y mis sistemas.... no ocultar los errores...

Les agradecería mucho que me guíen en esto....

Saluda Atte Neeruu!!!
__________________
Saluda Atte Neeruu!!! :)
Responder Con Cita
  #2  
Antiguo 24-02-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Hasta donde yo sé, uno nunca libera las excepciones explícitamente. Delphi se encarga de eso.

Sin embargo, ¿podría ser que la pérdida de memoria se deba a ese IniFile? Quizá lo creas antes y al saltar la excepción no lo destruyes.

// Saludos
Responder Con Cita
  #3  
Antiguo 24-02-2010
Neeruu Neeruu is offline
Miembro
 
Registrado: oct 2007
Posts: 490
Poder: 17
Neeruu Va por buen camino
Cool Liberar Exception

Gracias Roman por tu velocidad en la respuesta... así es...

Simplemente leí el log... jejeje que para eso esta.... y me di cuenta que la fuga de memoria estaba en el inifile.... lo destruí al final la aplicación... y solucionado....


Gracias...

Saluda Atte Neeruu!!!
__________________
Saluda Atte Neeruu!!! :)
Responder Con Cita
  #4  
Antiguo 24-02-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No sé qué tan buena idea es esperar hasta el final de la aplicación para destruir un objeto que posiblemente sólo se usa localmente. Para ese tipo de casos está la estructura try-finally-end, que puedes combinar con un try-except-end:

Código Delphi [-]
IniFile := TIniFile.Create(...);

try
  try
    ...
  except
    ...
  end;
finally
  IniFile.Free;
end;

// Saludos
Responder Con Cita
  #5  
Antiguo 24-02-2010
Neeruu Neeruu is offline
Miembro
 
Registrado: oct 2007
Posts: 490
Poder: 17
Neeruu Va por buen camino
Cool Liberar Exception

Si es de uso general en la aplicación ese inifile... así que si me conviene destruirlo al final.

Saluda Atte Neeruu!!!
__________________
Saluda Atte Neeruu!!! :)
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
Arithmetic exception NickName Firebird e Interbase 5 12-12-2022 22:14:12
Capturar exception MAXIUM Firebird e Interbase 7 07-02-2008 19:10:15
Manejo de Exception BlueSteel SQL 1 28-06-2006 17:03:35
exception arieliten Conexión con bases de datos 3 21-04-2005 00:27:59
deshablitar las exception febito Varios 13 21-05-2004 07:22:00


La franja horaria es GMT +2. Ahora son las 23:26:51.


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