O código abaixo, tá entrando no catch, mas morre ali… pois é como se vc dissesse ao compilador, ao dar a exception “MySQLIntegrityConstraintViolationException” não faça nada, pois vc só inseriu um comentário, veja:
try {
financeiroBco.gravaFinanceiro(financeiro,con);
} catch (MySQLIntegrityConstraintViolationException e) {
// TODO: handle exception
}
Agora, vc pode contornar isso de duas forma:
a) Removendo o try/catch “inútil”, visto que vc não trata nada ali, ficando assim a chamada:
financeiroBco.gravaFinanceiro(financeiro,con);
b) Re-lançando a exception, que ao meu ver (neste caso abaixo) continua inútil:
try {
financeiroBco.gravaFinanceiro(financeiro,con);
} catch (MySQLIntegrityConstraintViolationException e) {
throw e;
}
Att.
Edson.
AAAAAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHH
Isso !!!
Relançar a Exceção !!!
Vejam !!! Deu certo !!!
No meu metodo que grava :
} catch (MySQLIntegrityConstraintViolationException e) {// Chave duplicada
throw new MySQLIntegrityConstraintViolationException ();
}catch(SQLException e){
e.printStackTrace();
}
finally{
stmt.close();
}
Meu Chamador (está dentro de um While )
} catch (MySQLIntegrityConstraintViolationException e) {
e.printStackTrace();
}
Lá embaixo no método eu Capturo a exception :
}
retorno = "Arquivo Atualizado com Sucesso !";
} catch (MySQLIntegrityConstraintViolationException e) {
retorno = "ERRO ! Arquivo do Mês já processado, Confira !";
}catch (FileNotFoundException e) {
retorno = "Arquivo não Localizado !";
}
catch (Exception e) {
retorno = "Erro !";
}finally{
con.close();
conex.Fecha_Conexao(con);
arquivo.close();
in.close();
return retorno;
}
}
No meu Servlet eu faço :
try {
request.setAttribute("msgRequest",txtEmpresa(request,response,mes,ano));
} catch (SQLException e) {
}
Mostro a mensagem para o meu usuário lá no JSP !!!
Tô começando a ficar ferinha !!! kkkkkkkkkkkkkkk
Com ajuda de todos vocês, muito obrigada mesmo !
Foi muito proveitoso a ajuda de todos !
Giuliana
Ah. Daqui alguns meses creio que já posso estar ajudando, por enquanto estou sendo mto ajudada !
Valeu gente ! :lol: :lol:
rdgc
Abril 18, 2008, 8:39am
#23
[quote=Giuliana]Eu sou novata, utilizo JSP + SERVLET :oops:
Estou fazendo assim no meu méotdo de gravação :
public String gravaFinanceiro(FinanceiroVO financeiro,Connection con) throws SQLException{
sb = new StringBuffer();
String retorno = "";
try {
sb.append("insert into financeiro (matFin,empFin,anoFin,mesFin,");
sb.append("tipoFin,vlrFin) values (?,?,?,?,?,?)");
stmt = con.prepareStatement(sb.toString());
stmt.setInt(1,financeiro.getMatFin());
stmt.setInt(2,financeiro.getEmpFin());
stmt.setInt(3,financeiro.getAnoFin());
stmt.setInt(4,financeiro.getMesFin());
stmt.setString(5,financeiro.getTipoFin());
stmt.setBigDecimal(6,financeiro.getVlrFin());
stmt.execute();
retorno = "Registro Salvo !";
} catch (MySQLIntegrityConstraintViolationException e) {// Chave duplicada
retorno = "Chave Duplicada";
}finally{
stmt.close();
return retorno;
}
}
[/quote]
Coloca na linha 17 do método gravaFinanceiro()
flw!