30/09/2004

Tratamento de erro

Pessoal, estou com um problema no uso do Try Except. Estou usando os componentes Indy TIdSMTP e TIdMessage para enviar emails. Está funcionando OK, até acontecer uma excessão tal como falta de conexão com a internet, ou problemas em minha rede (o que resulta no mesmo). Envio o email da seguinte maneira:
           Try
               SMTP.Connect(30);
               SMTP.Send(MENSAGEM);
               SMTP.Disconnect;
           Except
               .....
               ............
               ........
           End;

Onde: ´MENSAGEM´ é o componente TIdMessage com todos os parâmetros já definidos.

[b:4b58c4cba1]Minha pergunta é[/b:4b58c4cba1]: Como evitar que o programa trave em caso de algum problema impedir que o envio do email seja bem sucedido, tal como falta de internet?

Tudo funciona perfeitamente. O problema mesmo é o Try Except que não trata o erro.
Da forma como eu fiz no código acima, o Try não está tratando a excessão (não tenho a menor idéia porque) e o programa trava se o computador não estiver conectado. Alguém tem alguma sugestão de rotina que evite que o programa trave em caso de não ser possível enviar o e-mail?

Valeu!
wbb


Wbb

Respostas

30/09/2004

Osocram

o SMTP deve ter um evendo d timeout ou alto assim...

acho q o seu prob non eh um erro e sim um timeout enton non eh pego pelo try Except.


Responder Citar

01/10/2004

Wbb

Exatamente!!!

Você tem idéia de como tratar isso?

Valeu!
wbb


Responder Citar

04/10/2004

Osocram

Wbb

Como eu t disse eu mexi num prog assim a mto tempo....

Acho q vc pode verificar ou aumentar o timeout dele...
assim ele fica tentando mandar por mais tempo...
ex: se o timeout = 10 enton ele vai tentar por 10segundos
dae vc aumenta p 30s por ex.


Responder Citar