Erro com try e catch

18 respostas
J

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(); }

18 Respostas

ManoJava

Posta o erro ai.

J

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

rodrigo.bossini

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.

J

Meu metodo inserir esta assim:

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

rodrigo.bossini

JeffersonJCosta:
Meu metodo inserir esta assim:

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

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

J

Como faço isso?

rodrigo.bossini
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!");  
 }
J

Coloquei essa linha:

E nao mudou nada nem apareceu tambem.

rodrigo.bossini

Ele imprime “não salvou” ?

vinicius.martinez

Man…faltou dar o rollback!!

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(); }

J

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

J

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

rodrigo.bossini

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

T

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

H

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(); }

J

Coloquei essa linha:

E a mensagem foi essa:

" Não salvou: could not execute query "

rodrigo.bossini

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

J

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.

Criado 1 de fevereiro de 2010
Ultima resposta 1 de fev. de 2010
Respostas 18
Participantes 6