2011-08-31 35 views
13

Así que estoy usando NetBeans como mi IDE para desarrollar Android.NetBeans y detener/interrumpir todas las excepciones?

Sin embargo, cuando llegue a una excepción, Netbeans no se rompe en la excepción como espero que lo haga.

He marcado la casilla "Detener en excepciones no detectadas" que se pueden encontrar en Opciones -> Depurador Java -> Detener en excepciones no detectadas pero eso no ayuda.

Por otra parte, ¿dónde puedo ver el mensaje de excepción real? No veo nada. En este momento no tengo ni idea de dónde y cuándo ocurre una excepción, solo que ocurre.

He leído algo en netbeans.org (en caché, el sitio parece estar fuera de servicio) sobre un error en 6.9.1 corregido, pero parece que no está corregido en 7.0 que tengo.

La ventana de depuración no dice nada útil en absoluto, da cierta StackTrace av forma que es inútil como es imposible especificar cualquiera de mi propio código.

he pasado de Eclipse IDE causa que chupa, NetBeans es mucho más ágil, pero la depuración necesita ser arreglado para ser útil ...

+0

Dang ¡Realmente necesito la respuesta a esta pregunta! – brenjt

+2

Por si alguien viene aquí necesidad de romper sobre las excepciones en código nativo, en la ventana de la consola de depuración, introduzca 'throw' captura de romper en cualquier excepción lanzada, y' catch' captura de romper en cualquier excepción capturada. Lea la [documentación de GDB] (http://www.gnu.org/software/gdb/documentation/) para [esos comandos] (http://sourceware.org/gdb/current/onlinedocs/gdb/Set-Catchpoints. html # Set-Catchpoints) para romper con tipos específicos de excepciones. – doug65536

Respuesta

9

tengo este problema cuando se utiliza NetBeans también. Para obtener el mensaje de excepción, uso try-and-catch. En la instrucción catch(), llame a una función que contenga algún código y coloque un punto de interrupción en él. Luego, cuando se dé la excepción, se invocará su punto de interrupción en la declaración catch y podrá leer la información (mensaje de error, pila, etc.) del objeto de excepción.

try 
{ 
    // Doing something here 
} 
catch (Exception e1) 
{ 
    // This is called when an exception occurs 
    doSomething(); /// Put breakpoint here 
} 

ACTUALIZACIÓN:

No estoy seguro de si esto funcionará para Android pero se podría intentar entrar en un "nuevo punto de interrupción". Al ingresar a un nuevo punto de interrupción para romper una excepción, debe conocer el nombre de la excepción de paquete/clase exacta . Por ejemplo, si desea capturar una NullPointerException, vaya a Depurar >> Nuevo punto de interrupción para crear un nuevo punto de interrupción e introduzca java.lang.NullPointerException en el campo Nombre de clase de excepción en el cuadro de diálogo Propiedades de punto de interrupción . Elija si desea interrumpir las excepciones atrapadas, no detectadas o ambas y llegará a un punto de interrupción si ese tipo de excepción se produce alguna vez en la clase/proyecto.

+0

thx ... pero debe haber una manera para que se comporte como en Visual Studio, es decir, se rompe en la línea de la excepción? – Ted

+1

Compruebe la actualización para otra posible solución. –

+0

Thx, pero eso no es lo que estoy buscando por desgracia = (necesito que se rompa dondequiera que se produce la excepción, sin mí establecer un punto de interrupción. Al final, me cambié de nuevo a Eclipse ... = ( – Ted

0

que tenían este tipo de comportamiento donde tenía mi archivo fuente que generó la excepción no en el "paquete por defecto". Cuando moví todo al "paquete predeterminado", comenzó a funcionar bien y se detuvo en la excepción automáticamente.

Cuestiones relacionadas