Como capturar exception do model JSF?[RESOLVIDO]

1 resposta
thimor

Ola Senhores,

Fiz uma aplicação JSF e coloquei a persistencia no ManagedBean, nesse caso tratava todas as exececoes do banco e gerava o FacesMessage e o erro aparecia na tela.
Fiz outra aplicacao JSF dessa vez coloquei a persistencia numa camada de DAOs e o ManagedBean chama apenas o e passa o objeto. Se der uma exception por exemplo mysqlintegrityconstraintviolationexception o managedbean nao captura essa exception e se eu colocar o try/catch no metodo q chama o dao o compilador nao aceita.

Nesse caso pergunto, como eu pego essas exceptions da camada de persistencia?

grato,

Thiago Moreno

1 Resposta

thimor

Resolvi olhar direito e vi que a pergunta que fiz é meio básica. Eu ia apagar o topico mas como a pergunta pode servir a alguem la vai:

basta apenas no try/catch do metodo que executa a acao adicionar a clausula throw nome_da_variavel_da_exception que ela sera capturada pelo metodo que o chamou caso ele tenha um try/catch também.

public class Classe1 {

      private Object objeto;
      public void gravar() {
        try {
             Classe2.gravar(objeto);
        } catch(Exception ex) {
              System.out.println(ex.getLocalizedMessage());
            }
     }
}

public Class Classe2 {
    ...
    public static void gravar(Object objeto) {
          EntityTrasaction et = getEntityManager().getEntityTransaction();
          try {
               et.begin();
               getEntityManager().persist(objeto);
               et.commit();
           }   catch(Exception ex) {
                 System.out.println(ex.getLocalizedMessage());
                 throw ex; //Aqui esta a resposta da minha pergunta. Basta adicionar o throw q se o metodo chamador tiver o try/catch vai pegar aa exception;
             }
     }
}

é isso pessoal.

Criado 10 de novembro de 2009
Ultima resposta 10 de nov. de 2009
Respostas 1
Participantes 1