Tratamento de Exceptions e Formatação de Mensagens

Olá pessoal,

Gostaria saber vocês uma boa prática para o tratamento de exceções:
Devo colocar um Try Cath em minha facade e tratar? ou ir tratando em todas as camadas suas respectivas exceptions?

Gostaria também de fazer um tratamento um pouco mais inteligente, do tipo:
Ocorreu uma exception onde tal dado era not-null então devolver a causa(qual o dado) e uma possível solução.

E formatar as mensagens, devo criar uma exception para cada domínio e formatar as mensagens no constructor desta?

Lembrando que estou trabalhando a nível de serviço, enão não posso depender de interface alguma, isto é,
a saída do sistema pode ser um web-services, uma página jsp, ou um flex.
Logo devo devolver as mensagens formatadas e até se possível internacionalizadas.

Abraços!
\o/

Olá RPFFOZ
Então rapaz… vou pode fazer um facade e trata lá… e implementar uma exception sua extendendo da classe Exception
lá na sua classe de excessão vc recebe um exception do facade e faz uns instanceOf e trata do jeito que vc quiser
setando causa, tipo do erro (aviso, ou erro).
Resta saber onde vc irá exibir… dai precisa ver certinho

blz…
espero ter ajudado

Olá,
Obrigado pela atenção, mas as minhas dúvidas são outras… =)

sua solução é interessante, apesar de discordar do uso de instaceOf.

Abraços
\o/

Díficil definir isso, gostaria até de saber se existe algum pattern referente a isso…

Se tratar tudo na façade, fica ruim. (thorws em uma exceção do Hibernate na façade é estranho)

Se tratar exceções de persistência na DAO e de negócio na Session talvez seria mais coerente…
e a façade só devolve pra interface!

Mas fica a pergunta ai então… tem algum padrão pra isso? :?:

[quote=Quinger]Díficil definir isso, gostaria até de saber se existe algum pattern referente a isso…

Se tratar tudo na façade, fica ruim. (thorws em uma exceção do Hibernate na façade é estranho)

Se tratar exceções de persistência na DAO e de negócio na Session talvez seria mais coerente…
e a façade só devolve pra interface!

Mas fica a pergunta ai então… tem algum padrão pra isso? :?:[/quote]

É poisé…

Também gostaria muito de saber se existe um padrão…

Mas acho que o pessoal aqui faz um e.printStackTrace() e boa!

shusahsahsa

\o/

[quote=Quinger]Díficil definir isso, gostaria até de saber se existe algum pattern referente a isso…

Se tratar tudo na façade, fica ruim. (thorws em uma exceção do Hibernate na façade é estranho)

Se tratar exceções de persistência na DAO e de negócio na Session talvez seria mais coerente…
e a façade só devolve pra interface!

Mas fica a pergunta ai então… tem algum padrão pra isso? :?:[/quote]

ahhh leandro, xupa minha tora, vai. . .

[quote=rpffoz]
É poisé…

Também gostaria muito de saber se existe um padrão…

Mas acho que o pessoal aqui faz um e.printStackTrace() e boa!

shusahsahsa

\o/[/quote]

hehehe ai é complicado eim…

vc já mexeu com Spring Framework? Com ele vc pode tratar exceções de uma forma bem interessante…

eh, usando AOP do spring :stuck_out_tongue:

[quote=peerless]
ahhh leandro, xupa minha tora, vai. . . [/quote]

Desconheço esse padrão sua biba pirçuda! huaehauheuahu :lol:

Oh, educação!!! Foi de onde que vc herdou? Dos barbaros ou dos aborigenes?!?!?

Bem, eu acho que não existe nenhum padrão pra isso. Mas se tratando de dominio, contrato, pré e pós condição e etc., acho que vc deve sempre levantar a exceção, deixando a sua camada de controle (dependendo da arquitetura que vc está usando) tratar isso… a sua camada de negocio (o seu método, para ser mais exato) deve ser atomica, ela deve ter um propósito, efetuar um contrato mediante as pré condições e retornar uma pós condição. Caso alguma coisa não seja satisfatória, vc deve levantar uma exceção SUA, e não um simples exception.
Bem, isso é uma boa prática defendida por muitos… eu utilizo assim…

Resumindo: IMHO, eu acho que vc deve levantar exceções na camada de negocio deixando a camada de controle tratar a exceção.

ÇQKJÇEFKLJASDLKFJALKDFFSDFA