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.
