Erro com try e catch

Pessoal,

Estou persistindo meus dados dentro de um try catch, mas ele esta retornando um erro e mesmo assim persistindo os dados.
Sera que fiz alguma coisa errada?

try { PessoaDAO dao = new PessoaDAO(session); Transaction t = session.beginTransaction(); dao.Inserir(p); t.commit(); } catch (Exception e) { out.println("Nao salvou!"); } finally { session.flush(); session.close(); }

Posta o erro ai.

Ele esta persistindo o dado no BD, mas mostrando a minha mensagem de erro, mostrando o que está dentro do catch, entendeu?

O que tem no seu método inserir depois da instrução execute que salva os dados?
Pode ser uma chamada close num ResultSet com valor null, por exemplo.

Meu metodo inserir esta assim:

public void Inserir(Pessoa p) { logger.info("Salvando " + p + " sessao " + sessao); this.sessao.save(p); }

[quote=JeffersonJCosta]Meu metodo inserir esta assim:

public void Inserir(Pessoa p) { logger.info("Salvando " + p + " sessao " + sessao); this.sessao.save(p); }[/quote]

Dá uma verificada no stackTrace da exceção que é lançada. Posta ela aqui pra gente ver tbm.

Como faço isso?

catch (Exception e) {  
                 e.printStackTrace(); //verifique outros métodos deste objeto e também que lhe retornarão informações interessantes, referentes à exceção.
                 out.println("Nao salvou!");  
 } 

Coloquei essa linha:

E nao mudou nada nem apareceu tambem.

Ele imprime “não salvou” ?

Man…faltou dar o rollback!!

[quote=JeffersonJCosta]Pessoal,

try { PessoaDAO dao = new PessoaDAO(session); Transaction t = session.beginTransaction(); dao.Inserir(p); t.commit(); } catch (Exception e) { out.println("Nao salvou!"); [b] t.rollback();[/b] } finally { session.flush(); session.close(); }[/quote]

Continua imprimindo Nao salvou sim e nada mais
Vou dar o rollback pra ver

Coloquei o rollback, mas continua salvando e mesmo assim mostrando erro

Dá um System.out.println ("Não salvou: " + e.getMessage()) e posta aqui pra gente o que acontece.

Sem o erro da Exception fica difícil ajudar
Faz o que o nosso amigo rod.attack disse coloque a mensagem da exceção para imprimir no console

Tenta colocar assim.

// Coloca essas duas linhas fora do try PessoaDAO dao = new PessoaDAO(session); Transaction t = session.beginTransaction(); try { dao.Inserir(p); t.commit(); } catch (Exception e) { out.println("Nao salvou!"); t.rollback(); } finally { session.flush(); session.close(); }

Coloquei essa linha:

E a mensagem foi essa:

" Não salvou: could not execute query "

Qual é a instrução SQL que vem logo depois do INSERT? você tá usando proc’s?

Consegui descobrir o erro, depois do INSERT eu estava chamando um outro método para listar tudo que está cadastrado, o erro está nesse método, como eu ainda não vou precisar, tirei a linha, nem tinha visto isso, pois postei aki sem essa linha.
Desculpa a falta de atenção pessoal.
Brigadao pela ajuda e pela atenção.
Valeu mesmo.
Abraços.