Fórum Try,except #310627
25/01/2006
0
try Rotinas.EnviarEmail(email,´´,EAssunto.Text,´´,´´,´´,´´,´´,ximagem); CdsClientes.Edit; CdsClientesdatenvio.Value := date; CdsClientes.Post; CdsClientes.ApplyUpdates(0); except Mensagem(´ERRO´,´Erro no envio de email !´); end;
Rotinas.EnviarEmail, é um rotina para enviar email, onde eu passo varios parametros, so que tenho que gravar na tabela de clientes, para quais foram enviados email, se falhar o envio nao posso gravar a data, nesse caso esse bloco try except, protege a gravação da data caso falhe o envio do email?
Abs
Felipeiw
Curtir tópico
+ 0Posts
25/01/2006
Edilcimar
Gostei + 0
25/01/2006
Macario
Transformaria esta [b:c5f7644e75]Procedure[/b:c5f7644e75] em [b:c5f7644e75]Function[/b:c5f7644e75] de result Boolean, pois assim voce poderia encapsular o tratamento de erro dentro da função e caso o Result for verdadeiro você faria abaixo:
if Rotinas.EnviarEmail(email,´´,EAssunto.Text,´´,´´,´´,´´,´´,ximagem) then
begin
CdsClientes.Edit;
CdsClientesdatenvio.Value := date;
CdsClientes.Post;
CdsClientes.ApplyUpdates(0);
end;
P.s: A mensagem para falha no envio deve ficar dentro da função.
:arrow:
Gostei + 0
25/01/2006
Michael
Sugiro que, dentro da rotina enviar email, vc faça um [b:3504da6711]try..except[/b:3504da6711], e, no caso de erro, levante uma exceção do tipo [b:3504da6711]EErroEnviarEmail[/b:3504da6711]. Então no [b:3504da6711]try..except[/b:3504da6711] ´externo´, vc trata a mensagem correta. Veja:
type EErroEnviarEmail = class(Exception); ... procedure EnviarEmail(...); begin ... try // Envie o email aqui dentro except raise EErroEnviarEmail.Create(´Erro ao enviar o email´); end; end; ... try EnviarEmail(...) ... except on E: EErroEnviarEmail do ShowMessage(E.Message) else // Tratamento para outros tipos de erro end;
Atenção para outra coisa: [b:3504da6711]ApplyUpdates [/b:3504da6711]não gera exceção, mas dispara o evento [b:3504da6711]OnReconcileError [/b:3504da6711]do componente [b:3504da6711]TClientDataSet[/b:3504da6711]. Um erro nessa linha então não vai entrar no [b:3504da6711]except[/b:3504da6711].
[]´s
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)