A algum tempo tenho usado o bloco “tr...catch” erradamente nos sites que 
tenho desenvolvido. Por exemplo, ter duas funções em apenas um bloco catch. 
Veja o código.

http://pastebin.com/3JNEnqq0

Se parar para pensar esse não é um forma 100% seguro para tratamento de 
exceções. No bloco acima se o método de adicionar endereço falhar o 
cadastro do cliente vai está errado. Tinha ciencia desse problema mas não 
levava a serio.

Qual seria a melhor forma de garantir o cadastro do cliente? O código acima 
foi somente um exemplo, tenho um caso real atualmente que é o seguinte.
Tenho um processo de cadastro de cliente onde é necessário inserir os 
serviços adquiridos, criar a fatura, enviar e-mails de notificação.(varios 
e-mails)

http://pastebin.com/UYQFuUT8
 
*O último método de enviar e-mail “notificar” e sem dúvida o grande vilão, 
nele a grandes chances de ocorrer um erro por falha na conexão, host fora 
do ar. Etc.*


 *Criando vários blocos “catch” eu consigo gerenciar detalhadamente o erro 
caso aconteça em qualquer parte do código.*

*Se a última etapa falhar, que é a de notificação, posso ainda carregar uma 
página de sucesso e avisar somente que ocorreu um erro no envio do e-mail.*

*Se acontecer uma falha na parte de adicionar o serviço ao cliente, que 
seria muito ruim, posso simplesmente apagar o cadastro do cliente feito no 
primeiro processo.*


 *Essa seria a melhor forma de controlar os possíveis erros ? Alguém faz 
algo diferente disso?*

-- 
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos 
Grupos do Google.
Para ver esta discussão na web, acesse 
https://groups.google.com/d/msg/kohana-php/-/PgEhMsjT0psJ.
Para postar neste grupo, envie um e-mail para [email protected].
Para cancelar a inscrição nesse grupo, envie um e-mail para 
[email protected].
Para obter mais opções, visite esse grupo em 
http://groups.google.com/group/kohana-php?hl=pt-BR.

Responder a