Tratamento de Exceções

0 respostas
josimarsis

Olá, andei lendo alguns artigos no google sobre tratamento de exceções entendi alguns conseitos mais não entendi outras coisas estou estudando isso e me deparei com alguns problemas. Ex: Estou usando JPA/Hibernate gostaria de saber como faço pra recuperar por exemplo uma tentativa de duplicidade de registros em um campo unico e retornar uma mensagem amigavel para o usuario? Outro problema é o seguinte:

//Classe Bairro.java . . . //metodo salvar public void Salvar() { try { super.Salvar(); //pojo persistente beanBairro = new Bairro(); beanBairro.setBaiDescricao(jtfBairro.getText()); //metodo static da classe Conexao Conexao.Salvar(beanBairro); } catch (Exception ex) { Logger.getLogger(FrmBairro.class.getName()).log(Level.SEVERE, null, ex); } }

//Classe Conexao
.
.
.
    // metodo responsavel por receber o pojo e persistir no banco
    public static void Salvar(Object objeto) throws Exception {
        EntityManager manager = null;
        try {
            manager = Conexao.getConexao();
            manager.getTransaction().begin();
            manager.persist(objeto);
            manager.getTransaction().commit();
            JOptionPane.showMessageDialog(null, "Salvo com sucesso", "", JOptionPane.PLAIN_MESSAGE);
        } catch (EntityExistsException eee) {
            JOptionPane.showMessageDialog(null, "Tentativa de duplicidade de registros, operação não realizada \n" + eee.getMessage(), "Erro exception number 1 - EntityExistsException", JOptionPane.ERROR_MESSAGE);
            manager.getTransaction().rollback();
        } catch (IllegalStateException ise) {
            JOptionPane.showMessageDialog(null, "operação não realizada \n" + ise.getMessage(), "Erro exception number 2 - IllegalStateException", JOptionPane.ERROR_MESSAGE);
            manager.getTransaction().rollback();
        } catch (IllegalArgumentException iae) {
            JOptionPane.showMessageDialog(null, "operação não realizada \n" + iae.getMessage(), "Erro exception number 3 - IllegalArgumentException", JOptionPane.ERROR_MESSAGE);
            manager.getTransaction().rollback();
        } catch (TransactionRequiredException tre) {
            JOptionPane.showMessageDialog(null, "operação não realizada \n" + tre.getMessage(), "Erro exception number 4 - TransactionRequiredException", JOptionPane.ERROR_MESSAGE);
            manager.getTransaction().rollback();
        }
    }

A duvida é a seguinte segundo a documentação do JPA essas são as 4 exceções que podem ser lançadas em uma inserção de dados porem quando ocorre uma exceção o bloco catch que é acionado é o do metodo salvar da classe bairro, e de nenhuma forma consegui capturar o que realmente aconteceu. Gostaria de padronizar minhas exceções alguem pode me ajudar?

Grato!

Criado 5 de agosto de 2009
Respostas 0
Participantes 1