2011-10-13 15 views
5

Estoy trabajando en una aplicación java para Android y actualmente estoy recibiendo un problema donde el depurador está entrando en mi bloque catch y de alguna manera ex es nulo? ¿Alguien habia visto algo como esto antes?catch null exception

} 
catch(Exception ex) 
{ 
    // Debugger is coming through the catch block and ex is null ???? 
} 

Respuesta

6

Esto suena como el código fuente y las clases compiladas no están sincronizadas, por lo que el depurador se está metiendo en el bloque equivocado.

Intenta hacer una limpieza y luego una reconstrucción.

+0

Limpié el proyecto y reconstruí, parece arreglado. ¡Gracias! –

1

La excepción nunca será nula en ese bloque. Si el puntero de instrucción en el depurador apunta a la línea de captura, debe avanzar una línea más para que la excepción esté accesible para usted. Es posible que desee agregar una línea de código (potencialmente una llamada de registro) a su bloque catch y poner su punto de ruptura en eso para capturar lo que es.

+0

Sí, incluso intenté 'throw null;' pero luego se capturó una instancia 'NullPointerException'. –

+0

Si dice que respondí su pregunta, haga clic en la casilla de verificación junto a mi respuesta que dice que resolví su problema. –

+0

No fui yo quien hizo la pregunta, así que no puedo hacer eso. –

0

Agregue algunas declaraciones de registro y verifique. Su ex puede estar fuera del alcance.

+0

David Carpenter en cuestión dice "// ¿El depurador viene a través del bloque catch y ex es nulo ????". Entonces "ex" está en el alcance. – hasanghaforian

0

Tuve exactamente el mismo problema dentro de una AsyncTask, mientras se depuraba en un dispositivo real (Galaxy Tab 2). Entonces yo también puedo confirmar que este extraño problema es real.

Para mí, la respuesta aceptada no ayudó.

Pero en mi caso el problema desapareció misteriosamente después de desconectar el conector usb del dispositivo y volver a conectarlo después (y luego ejecutar mi aplicación de nuevo).