ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Tratamento de erros. [RESOLVIDO]

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
Djarum
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 1 de Junho de 2011
Mensagens: 296

MensagemEnviada: Qua Nov 16, 2011 3:20 pm    Assunto: Tratamento de erros. [RESOLVIDO] Responder com Citação

Salve pessoal do Active Delphi,

Me perdoem se, por acaso, estou repetindo este tópico. Tentei localizar algo que se encaixasse no padrão do que estou tentando aprender e não consegui;
Estou começando a tratar os erros que minha aplicação gera. Pesquisei e estou estudando ainda como funciona o conceito e tals.
Eu gostaria de uma ajuda do pessoal do fórum, quanto a esse primeiro erro.

Tenho aqui, a classe do erro e o erro propriamente dito.

Tipo: EIdConnectTimeOut
Erro: Connect Timed Out

Na aplicação, uso um Try e um except para poder manipular essa mensagem.
Nesse caso, como eu faria pra tratar SOMENTE esse erro? E não os erros que são gerados caso a conexão não seja 100%?

Código:

try
          FrmFormulario.FTP.Connect(true,10000);
         FrmFormulario.StatusBar1.Panels[2].Text        := '';
            Except on E:exception do
              ShowMessage('Erro na conexão com o servidor FTP!! Verifique.' + #13 + #13 +
              'Tipo do erro: ' + e.ClassName +  #13 +
              'Endereço do erro: ' + FrmFormulario.Name + #13 +
              'Erro: "'+e.message+ '"');



Fico no aguardo pessoal.


Editado pela última vez por Djarum em Qua Nov 16, 2011 3:57 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qua Nov 16, 2011 3:26 pm    Assunto: Responder com Citação

Experimente desta forma:

Código:
try
    FrmFormulario.FTP.Connect(true,10000);
    FrmFormulario.StatusBar1.Panels[2].Text        := '';
except
    on E: Exception do
        if E is EIdConnectTimeOut then
            ShowMessage('Timeout')
        else
            ShowMessage('Outro erro: ' + E.Message);
end;


Espero que ajude.


Editado pela última vez por imex em Qua Mar 08, 2023 10:44 am, num total de 2 vezes
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Djarum
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 1 de Junho de 2011
Mensagens: 296

MensagemEnviada: Qua Nov 16, 2011 3:30 pm    Assunto: Responder com Citação

Boa tarde Imex,


Ele me dá:

Código:

[Error] UFormulario.pas(206): Undeclared identifier: 'EIdConnectTimeOut'


Como?

rs
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qua Nov 16, 2011 3:39 pm    Assunto: Responder com Citação

Boa tarde

Experimente adicionar a unit IDException a clausula uses do seu form.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Djarum
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 1 de Junho de 2011
Mensagens: 296

MensagemEnviada: Qua Nov 16, 2011 3:43 pm    Assunto: Responder com Citação

Problema MAIS que resolvido!


Obrigado Imex pelo auxilio!!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Qua Nov 16, 2011 11:33 pm    Assunto: Responder com Citação

Outra maneira interessante, segundo gambit, um dos mantenedores do repositório da indy é esta, recomendado a mim por ele:

Código:

     if E is EIdSocketError then
        case EIdSocketError(E).LastError of
          10054: begin
                      Application.MessageBox('Seu captcha e consequentemente sua sessão com o servidor peer da Receita Federal expirou.', 'Aviso do Sistema', mb_ok+mb_iconwarning);
                      LoadCapcha(IdHTTP1, Image1.Picture);
                 end;
          10053: Application.MessageBox('Houve uma falha de conexão de número #10053 com a internet.', 'Aviso do Sistema', mb_ok+mb_iconwarning);
          10060: Application.MessageBox('Ocorreu uma falha na conexão de "Tempo Esgotado" de número #10060.', 'Aviso do Sistema', mb_ok+mb_iconwarning);
          10061: Application.MessageBox('Houve uma falha de "Conexão recusada" de número #10061 pelo servidor.', 'Aviso do Sistema', mb_ok+mb_iconwarning);
          11004: Application.MessageBox('Houve uma falha na conexão de número #11004 com a internet.', 'Aviso do Sistema', mb_ok+mb_iconwarning);
        end;



bye
_________________
P.O.W.E.R B.Y D.E.L.P.H.I


Editado pela última vez por johnny-walker em Sex Jul 18, 2014 10:54 am, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Djarum
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 1 de Junho de 2011
Mensagens: 296

MensagemEnviada: Qui Nov 17, 2011 7:45 am    Assunto: Responder com Citação

Pra cada erro, uma mensagem?

É isso?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Qui Nov 17, 2011 10:25 am    Assunto: Responder com Citação

Isto foi feito para mim ter a origem do erro, pelo menos dos principais que dão maiores dores de cabeça, não são necessários todos, como tb há outras formas de vc saber tb se o programa não encontrou a página que dá a mensagem 404 error e outras maneiras, no meu caso eu precisei ser mais preciso, pois precisava saber se o servidor recusou a conexão, se o tempo esgotou-se e etc., pois estes eram os erros mais comuns na minha aplicação. Neste caso aí você pode criar uma rotina genérica.


bye
_________________
P.O.W.E.R B.Y D.E.L.P.H.I


Editado pela última vez por johnny-walker em Seg Jun 05, 2017 10:26 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Djarum
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 1 de Junho de 2011
Mensagens: 296

MensagemEnviada: Qui Nov 17, 2011 10:30 am    Assunto: Responder com Citação

É,

Essa é uma forma para melhorar o programa.
Se tivéssemos uma lista com todos os erros, seria mais fácil, porém, sem graça nenhuma continuar qualquer projeto... rsrs

Os erros mais comuns aqui nessa aplicação é quando o IP do servidor FTP está errado ou quando o cabo de rede está desconectado. Pra esses, usei o modo trivial e está funcionando direitinho.


Obrigado pela dica!

Um abraço a todos que ajudaram!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Qui Nov 17, 2011 11:12 am    Assunto: Responder com Citação

Disponha amigo, espero que você consiga fazer o que quer.


bye
_________________
P.O.W.E.R B.Y D.E.L.P.H.I
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB