@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.
