Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Liberar Exception (https://www.clubdelphi.com/foros/showthread.php?t=66512)

Neeruu 24-02-2010 03:26:54

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!!!:)

roman 24-02-2010 03:36:20

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

Neeruu 24-02-2010 03:48:20

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!!!:)

roman 24-02-2010 03:52:55

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

Neeruu 24-02-2010 06:00:03

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

Saluda Atte Neeruu!!!:)


La franja horaria es GMT +2. Ahora son las 17:01:29.

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