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

Responder a