Tratamento de Execeções em camadas  XML
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Autor Mensagem
ddark.emanu
JavaChild
[Avatar]

Membro desde: 06/10/2010 16:09:16
Mensagens: 118
Localização: Cianorte - PR
Offline

já ... ele lança uma ConstrantVioletExpetion , depois uma BatchUpdateExpetion e por fim lança a ConstrantVioletExpetion com minha mensagem personalizada

No método salvar o catch(ConstrantVioletExpetion) não captura só no catch(Excpetion)

This message was edited 1 time. Last update was at 29/09/2011 13:57:33


EmmanueL Neri
[Email] [MSN]
FernandoFranzini
GUJ Master
[Avatar]

Membro desde: 24/04/2009 12:58:16
Mensagens: 1541
Offline

Estranho...então vc não ta jogando o tipo certo.....veja qual é tipo polimórfico da exception via depurador....

Fernando Franzini
[Email] [WWW]
ddark.emanu
JavaChild
[Avatar]

Membro desde: 06/10/2010 16:09:16
Mensagens: 118
Localização: Cianorte - PR
Offline

A excpetion a ser capturada não nescessariamente é a primeira ?

ERRO :

EmmanueL Neri
[Email] [MSN]
luxu
GUJ Ranger
[Avatar]

Membro desde: 28/10/2008 18:23:12
Mensagens: 881
Localização: Presidente Prudente/SP
Offline

amigo, ddark.emanu vc resolveu seu problema? Pq quero implementar exatamente isso no meu sistema, qdo lançar a exceção ela vir, de uma forma amigável, ao meu usuário final.



zicadopv.wordpress.com
[WWW]
carlos.scuna
Debugger
[Avatar]

Membro desde: 06/08/2006 23:29:57
Mensagens: 53
Offline

Bom, nos meus sistemas WEB, que sempre separo nas camadas (pages+)VIEW, SERVICE e DAO(+Model), estou sempre criando exceções genéricas (ViewException, ServiceException e DAOException).

Qualquer exceção que ocorra, por exemplo, na camada DAO, é tratada e relançada como uma DAOException. Acho que a ideia de separar em camadas é justamente separar as responsabilidades. Não quero que as camadas acima (SERVICE e VIEW) precisem tratar problemas específicos a camada DAO, ocorridos nela.
A camada SERVICE tá mandando a camada DAO executar alguma coisa... se der erro/problema, a SERVICE já sabe como tratar, pois a exceção lançada está explícita (checked).

Exemplo, no meu DAO genérico tenho:




Dessa forma, quem estiver chamando os métodos da camada DAO (seja pela camada SERVICE ou outra que venha a existir futuramente) vai se preocupar só com as exceções que a DAO pode lançar. Posso até no futuro adicionar outros tipos de exceções mais específicas pra DAO (WhateverDAOException, AnotherKindDAOException).

Acho que passar exceções que tiveram origem numa camada, deixando a responsabilidade do tratamento desta exceção pra outras camadas estraga a filosofia da separação de responsabilidades.


Bom... seguindo pra cima, até chegar nos meus ManagedBeans, o que eu faço é...





E assim a o JSF trata, exibindo pro usuário...
 
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Ir para:   
Powered by JForum 2.1.8 © JForum Team