Seria interessante usar transações. Em 5 de junho de 2012 07:56, Bernardo - Sudeste Hosting <[email protected] > escreveu:
> @Newton sua abordagem clareou minha mente. > > Em vez de ciar Exception unicas posso criar Exception que sirva para > varias situações. como Email_Exception() vai ser tudo relacionado a e-mail. > Vai reduzir bem os arquivos e códigos. > > Obrigado. > > > > Em 4 de junho de 2012 23:24, felipe bastos <[email protected]> escreveu: > > Rpz .. a principio .. meu caso .. >> >> Eu insiro mesmo que o usuario nao preencha nada .. eu achei um absurdo o >> cliente pagar, exigir e nao querer preencher .. deu uma trabalheira retirar >> validacoes .. mas foi do jeito que ele quis .. >> >> Mas, com relacao ao exception .. observe que ele so vai ser executado em >> caso de falha do banco. >> >> Se nao inseriu, nao vai dar rollback .. é um caso de falha critica de >> banco que merece um exception. >> >> Nao vi nenhuma referencia a filters nem rules no banco (nao faz check()) >> .. entao .. banco falhou, exception >> Em 04/06/2012 23:19, "Waldson Patricio" <[email protected]> >> escreveu: >> >> Pois é voce pode ter quantos catches de quantas exceções voce quiser. >>> Só acho exagero voce criar uma exceção para cada situação possível. Se >>> forem do mesmo contexto, acho mais interessante voce criar um código e >>> passar pra exceção. trhow new Cliente_Exception("Mensagem X", >>> Cliente_Exception::SITUACAO_X); >>> >>> outra observação é a questão da atomicidade. Acho que essa operação tem >>> que ser atômica, ou seja, ou executa tudo ou não executa nada. Dá uma >>> olhada em transações. >>> >>> Flw. >>> >>> 2012/6/4 felipe bastos <[email protected]> >>> >>>> E pode fazer a sequencia de catches pq funciona no php5 .. >>>> >>>> O exception captado sera de acordo com o tipo de exception disparado >>>> Em 04/06/2012 22:52, "felipe bastos" <[email protected]> escreveu: >>>> >>>> Bom cara .. eu nao li tudo mas lhe daria tais dicas .. >>>>> >>>>> Um cliente tem endereco >>>>> Outras coisas tem endereco >>>>> >>>>> Entao .. é mais conveniente endereco servir para tudo .. >>>>> >>>>> $endereco ... ORM::factory('endereco'); >>>>> >>>>> $cliente-endereco ... $endereco; >>>>> Tabela cliente campo endereco_id >>>>> >>>>> $fornecedor-endereco ... ORM::factory('endereco'); >>>>> Tabela fornecedor campo endereco_id >>>>> >>>>> Vc nao esta validando o endereco .. >>>>> >>>>> Como uma pessoa chegou a me pedir para fazer formularios pra ela nao >>>>> preencher (isso mesmo kkk) >>>>> >>>>> Vc poderia salvar o endereco mesmo sem dados .. vou aproveitar pra >>>>> corrigir isso no meu codigo tbm (erros de banco com exception, eu >>>>> simplesmente mando um erro amigavel pro user) >>>>> >>>>> if(! $endereco-save()){ >>>>> throw new ...Database...Exception(); >>>>> } >>>>> >>>>> Ai teria sentido usa try .. >>>>> >>>>> Vlw pela duvida .. e fica a dica >>>>> >>>>> Em 04/06/2012 19:57, "Bernardo Castro" <[email protected]> escreveu: >>>>> >>>>>> 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. >>>>>> >>>>> -- >>>> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana >>>> Php" dos Grupos do Google. >>>> 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. >>>> >>> >>> -- >>> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana >>> Php" dos Grupos do Google. >>> 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. >>> >> -- >> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana >> Php" dos Grupos do Google. >> 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. >> > > > > -- > Atenciosamente, > Bernardo Sepulveda de Castro > ------- ------- ------- -------- -------- -------- > *Sudeste Hosting...* > Ideias e Soluções Web > www.sudestehosting.com.br > (21)3305-3105 > > > -- > Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana > Php" dos Grupos do Google. > 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. > -- Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos Grupos do Google. 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.
