Foros del Web » Programación para mayores de 30 ;) » Java »

Error con resultado null java.lang.pointerexception

Estas en el tema de Error con resultado null java.lang.pointerexception en el foro de Java en Foros del Web. este es el metodo que me arroja el error java.lang.PointerException, en el punto resaltado, alguien me podria explicar porque y como resolveerlo: public void GastosDiesel(){ ...
  #1 (permalink)  
Antiguo 25/04/2011, 16:43
 
Fecha de Ingreso: octubre-2008
Mensajes: 4
Antigüedad: 15 años, 6 meses
Puntos: 0
Error con resultado null java.lang.pointerexception

este es el metodo que me arroja el error java.lang.PointerException, en el punto resaltado, alguien me podria explicar porque y como resolveerlo:

public void GastosDiesel(){
try{
conn.doConnection();
String query="Select sum(cantidad) as ediesel from gastos where facturado=1 and otros=0 and id_recorrido="+recibo+";";
conn.doConnection();
ResultSet answer=conn.cmdQueryReturn(query);
if(answer.first()){
if(answer.getString("ediesel").equals("null")||ans wer.getString("ediesel").equals("")){
ediesel=0.00;
}else{
ediesel=Float.parseFloat(answer.getString("ediesel "));
}
}
conn.CloseConnectionDB();
}catch(Exception e){JOptionPane.showMessageDialog(null, e+" GastosDiesel");}
}
  #2 (permalink)  
Antiguo 25/04/2011, 23:02
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Error con resultado null java.lang.pointerexception

Pues posiblemente esto answer.getString("ediesel") devuelve null y al llamar al método equals() de null te da la excepción.

Para comparar con null, se hace == null, no equals("null"). La segunda opción está comprobando que la cadena es una cadena válida que contiene dentro las letras "null", y no que es null.

Para evitar esta excepción en este tipo comparaciones, lo normal es hacerlo al revés, es decir, usar el método equals() de la cadena que sabes seguro que NO es null. En tu caso, quedaría

if (null==answer.getString("ediesel") || "".equals(answer.getString("ediesel" )

o bien, aprovechando que java no evalua la segunda parte del OR si la primera es true, podrías dejarlo como lo tienes (salvo el null)

if (answer.getString("ediesel")==null || answer.getString("ediesel").equals("") )

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: null
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:00.