O que deve estar causnado este erro?

6 respostas
D

Exception in thread “main” java.lang.NullPointerException at normalizacao_us01.main(normalizacao_us01.java, Compiled Code)

Utilizei um código que tinha feito para limpar um arquivo, fiz algumas modificações mais agora está dando este erro??

6 Respostas

Paulo_Silveira

voce esta acessando um metodo nao estatico de um objeto que esta com referencia nula.

Por exemplo

Object o = null;
o.toString();

Isso gera um NullPointer, o bug mais clássico de todos. Você deve estar passando um objeto como parâmetro para alguém, e executando um método deste objeto. Mas se o objeto é nulo, da isso.

D

Saquei, mas não estou entendendo uma coisa, eu criei um odbc, para acessar arquivoc.dbf, então ao acessar um arquivo.dbf criei este while,
só que ele no system.out.println que coloque dentro dele, o codigo deveria exibir uma fileira de valores, que são os códigos, este arquivo tem mais de 15 mil linhas, ele só me mostra 4 linhas, ele chega a executar mas depois dá este erro acima, se eu mudar de arquivo ele funciona.

while(rs.next())

{

String codigo = rs.getString(QRY_NIVEL);

System.out.println(codigo);

if(codigo.equals(1))

{	

codbrick = rs.getString(STRING01);

dscbrick = rs.getString(STRING02);
}
          	else 
		if (codigo.equals("3"))
			{

Paulo_Silveira

Posso apostar que a quinta linha do seu banco de dados nao tem o campo QRY_NIVEL, isso eh, esse campo esta vazio.
Ai, o seu driver jdbc retorna null, e voce ta chamando o .equals em uma referencia null. Verifique se ele eh == null antes de fazer o q vc esta fazendo. Eh soh adiciona a linha:

while(rs.next()) 
{ 
String codigo = rs.getString("QRY_NIVEL"); 
System.out.println(codigo); 
// ESTA LINHA EH NOVA:
if (codigo == null) continue;
if(codigo.equals("1")) 
{ 
  codbrick = rs.getString("STRING01"); 
  dscbrick = rs.getString("STRING02"); 
} 
else 
  if (codigo.equals("3")) 
  {

Se nao for isso, tenta descobrir em que linha ta dando o null pointer. No seu erro ta aparecendo “compiled code”. Que compilador vc ta usando?

D

Bem Paulo, o problema é que a coluna a qual estou me referenciando não existe nenhum campo em branco, então não devderia dar este erro já que funciona nos outros, parece que não está achando os valores dos campos. Eu tenho instalado aqui o jdk1.2.2.

Guilherme_Silveira

tem como instalar o 1.4? ou mesmo o 1.3 vai fazer MUITA diferenca na compilacao e interpretacao pra esse stack trace

D

Tem sim, Gui, já até baixei o 1.4, vou fazer a modificação!!!

Valeu!!

Criado 18 de setembro de 2002
Ultima resposta 19 de set. de 2002
Respostas 6
Participantes 3