[RESOLVIDO] java.lang.NumberFormatException: For input string: ""

É uma tela de cadastro que quando eu nao preencho todos os dados ela da esse erro.
Porém existem os dados obrigatórios que quando preenchidos APENAS eles apresenta esse erro:

Erro: java.lang.NumberFormatException: For input string: “”

try { modAluno.setCpf(jTextFieldCPF.getText()); modAluno.setContato(jTextFieldTELEFONE1.getText()); modAluno.setNomeAluno(jTextFieldNome.getText()); modAluno.setAno_em(jTextFieldTERMINO_EM.getText()); modAluno.setIdAluno(Integer.parseInt(jTextFieldidAluno.getText())); modAluno.setEndereco(jTextFieldENDEREÇO.getText()); modAluno.setNumero(jTextFieldNUMERO.getText()); modAluno.setBairro(jTextFieldBAIRRO.getText()); modAluno.setCidade(jTextFieldCIDADE.getText()); modAluno.setEstado(jComboBoxESTADO.getSelectedItem().toString()); modAluno.setCep(jTextFieldCEP.getText()); modAluno.setComplemento(jTextFieldCOMPLEMENTO.getText()); daoAluno.SalvarAluno(modAluno); con.desconecta(); con.conexao(); con.executaSql("select * from curso where nome like'%" + jComboBoxCursos.getSelectedItem() + "%'"); con.rs.first(); modEnade.setEdital("N/I"); modEnade.setCurso_codigo(con.rs.getInt("codigo")); modEnade.setSituacao("inscrito"); daoEnade.AddEnade(modEnade); modMatricula.setAluno_id(String.valueOf(modAluno.getKey())); modMatricula.setCurso_cod(modEnade.getCurso_codigo()); con.executaSql("select id from enade where Curso_codigo =" + con.rs.getInt("codigo")); con.rs.next(); modMatricula.setEnade_id(con.rs.getInt("id")); modMatricula.setPeriodo(jComboBoxTurnoCurso.getSelectedItem().toString()); daoMatricula.SalvarMatricula(modMatricula); JOptionPane.showMessageDialog(null, "Aluno Cadastrado"); TelaDeBusca tela = new TelaDeBusca(jLabelUserLoged8.getText()); tela.setVisible(true); this.dispose(); } catch (Exception e) { JOptionPane.showMessageDialog(null, "Nao foi possivel cadastrar o Aluno, Erro: " + e); System.out.println("Erro: " + e); }

Se você não preenche todos os campos, logo algum campo terá o conteúdo vazio e não é possível converter o vazio em número.

Solução: Ou preenche o campo que faz a conversão ou só faz a conversão caso o conteúdo não seja vazio

1 curtida

Eu verifiquei.

Um dos campos que eu iria armazenar no banco estavam vazios ou nulo.
Para corrigir o erro era simplesmente tirar o valor da função que faz o Insert no banco.

Obrigado pela atenção, mano :slight_smile:

A melhor solução, no caso, seria verificar se o valor é um tipo numérico válido ou verificar se o valor é vazio ("").
Caso seja, definir o valor 0 para o tal campo.