quarta-feira, 30 de setembro de 2009

[java-br] Exception + MVC Desktop

·

 

Possuo as seguintes classes: ClienteDAO, ClienteModele as seguintes
exceptions: DAOException, ModelException

Gostaria que qualquer Exception que ocorrer dentro de um método de
ClienteDAO fosse instanciado um DAOException dizendo o método do DAO que
causou o erro e não o método que foi chamado dentro dele, por exemplo, o
método abaixo daria pau no PreparedStatement, mas nosso DAOException não
gravaria o método do preparedStatement e sim o método inserir() do DAO.
já o getMessage() seria a mensagem retornada pelo preparedStatement.

class ClienteDAO {
..public void inserir() throws DAOException {
....try {
......// vai acontecer algum erro aqui, por exemplo um JDBCException
....}
.....catch (Exception e) {
.......throw new DAOException(); // aqui gostaria de instanciar o objeto
passando dinamicamente "ClienteDAO", "inserir" e "Table not found por
exemplo"
....}
..}
}

essa exceção DAOException seria delegada até a próxima camada (modelo) e lá
passaria reto, afinal, se já houve o erro em uma camada mais baixa não teria
como executar o resto.

class ClienteModel {
..public void novoCliente() throws DAOException, ModelException {
....try {
......clienteDAO.inserir();
......setChanged();
......notifyObserver("cliente inserido com sucesso.");
....}
....catch (DAOException e) {
.......throw new DAOException(e); // se houve erro já dentro da primeira
ação, então cairia aqui e passaria para a próxima camada com os mesmos
valores que foram capturados no "throw" anterior, isto é, "clienteDAO",
"inserir" e "Table not found"
....}
.....catch (Exception e) {
........throw new ModelException(e); // caso não tenha dado erro no DAO,
instancie ModelException com os valores "ClienteModel", "novoCliente" e por
exemplo "MethodNotFound pois estou usando setChanged() sem implementar
Observer"
....}
..}
}

Estou com dúvida nessas passagem de parâmetros, não consigo pegar os valores
que coloquei nos comentários e ir delegando sempre com os métodos exatos que
deram pau.
da forma que estou fazendo, ele dá pau no ClienteDAO e delega a exceção
DAOException para o ClienteModel, mas quando chega lá e cai no catch
(DAOException) ele constrói um novo objeto dizendo que o erro foi no
ClienteModel, fazendo eu perder os dados do erro do ClienteDAO.

Será que consegui explicar minha dúvida?

Obrigado

[As partes desta mensagem que não continham texto foram removidas]

__._,_.___
Para sair da lista, envie email para: java-br-unsubscribe@yahoogroups.com
Para upload/download de arquivos: http://www.yahoogroups.com/files/java-br
Atividade nos últimos dias
Visite seu Grupo
Yahoo! Mail

Conecte-se ao mundo

Proteção anti-spam

Muito mais espaço

Yahoo! Barra

Instale grátis

Buscar sites na web

Checar seus e-mails .

Yahoo! Grupos

Crie seu próprio grupo

A melhor forma de comunicação

.

__,_._,___

0 comentários:

Pague com LPs do Mister Colibri

Pague com LPs do Mister Colibri
Quer comprar celular,Tablet,pen drive, GPS e muito outros produtos e ainda podendo pagar tudo em LPs ?Pois saiba que isso é possível,basta você visitar o site downloadstotal.com e realizar a sua compra com toda tranquilidade e segurança!!!

Hora

Online

Arquivo do Blog