Ver Mensaje Individual
  #4  
Antiguo 05-02-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Hay dos puntos a notar.

Primero, except y finally son independientes uno de otro por lo que no puedes omitir uno de los dos si son necesarios ambos. Lo que tienes que hacer es anidar los bloques:

Código Delphi [-]
with TDownloadUrl.Create(nil) do
  try
    URL := 'http://ianua.cele.unam.mx/roman/dummy.txt';
    Filename := 'C:\Users\roman\Documents\dummy.txt';

    try
      ExecuteTarget(nil);
    except
      ShowMessage('No se puede descargar el archivo');
    end;
  finally
    Free;
  end;

Tal como lo tenías, el componente se destruirá sólo cuando haya una excepción.

Por otra parte, cuando ejecutas una aplicación desde el IDE y tienes activada la opción Stop on Delphi Exceptions:



la ejecución se detiene dos veces, en la excepción original y en la que pones tú. Puedes desactivar dicha opción pero, en todo caso, cuando ejecutes desde fuera del IDE, sólo se detendrá en tu excepción.

// Saludos
Responder Con Cita