IdFtp1 - Como posso tratar seus erros?

Delphi

31/08/2005

Boa tarde...

Estou tendo problemas para fazer o tratamento de erros do Idftp1, isto é, estou trabalhando com do Delphi 7, preciso fazer uma conecçao em ftp, só que quando é informado um usuario errado o sistema me devolve o seguinte erro - [b:6f63875727]User XXX Cannot log in[/b:6f63875727]., como fazer para capturar esse tipo de erro antes de aparecer essa tela de erro?.

Estou usando essa procedure para saber o status da conecção, gostaria de poder interceptar os erros como na rotina abaixo... sera que tem como?



procedure TForm1.IdFTP1Status(ASender: TObject; const AStatus: TIdStatus;
const AStatusText: String);
begin
case AStatus of
hsStatusText : statusbar1.SimpleText:=´hsStatusText´;
hsResolving : statusbar1.SimpleText:=´hsResolving´;
hsConnecting : statusbar1.SimpleText:=´hsConnecting´;
hsDisconnecting : statusbar1.SimpleText:=´hsDisconnecting´;
hsConnected : statusbar1.SimpleText:=´hsConnected´;
hsDisconnected : statusbar1.SimpleText:=´hsDisconnected´;
ftpTransfer : statusbar1.SimpleText:=´ftpTransfer´;
ftpReady : statusbar1.SimpleText:=´ftpReady´;
ftpAborted : statusbar1.SimpleText:=´ftpAborted´;
end;
end;



Agradeço a sua atenção...


Marcos.


Marcao

Marcao

Curtidas 0

Respostas

Marcao

Marcao

31/08/2005

voltar


GOSTEI 0
Massuda

Massuda

31/08/2005

O método TIdFTP.Connect gera uma exceção se não conseguir conectar com o servidor FTP. Trate o erro assim...
try
  IdFTP1.Connect;
  ...
except
  on E: EIdConnectException do  begin
      // o servidor retornou um erro
    end;
  on E: EIdConnectTimeout do begin
      // o servidor não respondeu
    end;
  else
    // erro desconhecido
    raise;
end;
Poderia tentar verificar o conteúdo da mensagem retornada na exceção, mas isso não é boa idéia pois essa mensagem é a mensagem do servidor e isso costuma variar de servidor para servidor.


GOSTEI 0
Marcao

Marcao

31/08/2005

Boa Tarde Massuda, td bem?

Agradeço a sua atenção em relação ao meu problema.

Tentei utilizaro exemplo que vc me passou, mas mesmo assim continua dando erro. - EIdSocketError, quando digito o host, usuario, password ou porta invalida, vc sabe como tratar esses erros individualmente?.


Muito obrigado,


[]´ Marcos.


GOSTEI 0
Massuda

Massuda

31/08/2005

...como tratar esses erros individualmente?.
Eu geralmente não faço esse tipo de tratamento de erro detalhado (apenas digo que a conexão falhou), mas acho que seria possível usar um código parecido com este...
try 
  IdFTP1.Connect; 
  ... 
except 
  if IdFTP1.LastCmdResult.NumericCode > 0 then 
    // possível erro no protocolo
  else
    // possível erro na conexão
end;
Para saber o que significam os diferentes valores de TIdFTP.LastCmdResult.NumericCode, você precisa dar uma olhada na [url=ftp://ftp.rfc-editor.org/in-notes/rfc959.txt]especificação do protocolo FTP[/url].


GOSTEI 0
Marcao

Marcao

31/08/2005

Bom dia Massuda, td bem?

Funcionou, muito obrigado pela força, valeu!!!

Grande Abraço,

Marcos.


GOSTEI 0
POSTAR