Duvida básica (acho) no PreparedStatement

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 ! :wink: :lol: :wink: :lol:

[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!