Si una aplicación Java arroja una excepción no controlada, hace que Eclipse se rompa en ese punto. ¿Hay alguna forma de inspeccionar la excepción actual? Básicamente, $exception
de MSVS?¿Inspecciona la excepción actual en el depurador Eclipse?
Respuesta
En el problema descrito se describe al hacer uso de Excepción punto de interrupción, en cuyo caso no tiene acceso a la variable de excepción y no puede inspeccionarla en la vista de variables.
He encontrado una "solución" a este problema en el siguiente mensaje: Breakpoint at exception in Eclipse - how to examine Exception object?
Es:
Hay una opción en las preferencias de Eclipse que permite la inspección de de la excepción lanzada:
Comprobar Java -> Depurar -> Abrir ventana emergente cuando se suspende en la excepción
Con esta opción, habrá una ventana emergente que permite la inspección de la excepción .
Extraño que esta opción no está marcada por defecto, ya que es muy ¡muy útil!
Esto es genial, pero una pregunta de seguimiento que tengo es ¿cómo la recuperas si cambias de aplicación? Cambié a SO para votar la respuesta y cuando volví a eclipsar, la ventana emergente se había cerrado. MSVS FTW. – dcstraw
Esto no funciona para mí. Establecí esta opción. Agregue un punto de interrupción de excepción para NullPointException. Corrí mi aplicación en el depurador. Causó una NullPointerException para ser lanzada. El depurador simplemente detiene la aplicación como se esperaba. Pero no se abre ventana o diálogo con los detalles de la excepción. De hecho, el comportamiento es exactamente como antes. – DragonFax
Francamente, llevo más de 5 años tratando de responder a esta pregunta. Con frecuencia me sorprende que pueda detenerse en una excepción, pero se le niega cualquier otro detalle sobre la excepción que lo detuvo. – DragonFax
Si desea inspeccionar el objeto Exception, configure un punto de interrupción dentro del bloque catch, o configure un punto de interrupción de excepción, y pase el puntero sobre la variable en el punto de corte.
try {
...code...
} catch (Exception e) {
...
}
Pase el ratón sobre la dirección, o abrir las variables Eclipse ver y añadir el nombre de la variable es una excepción.
Espero que esto ayude!
Bueno, gracias por señalar lo obvio:/pero parece que la respuesta es "no, no se puede", entonces :( – kizzx2
¿Cómo es esto un "no"? Desde la vista de desplazamiento o de Variables, puede profundizar en cualquier campo de la Excepción ... ¿qué es diferente de '$ exception'? – BRFennPocock
@BRPocock' $ exception' no requiere una recompilación o detención de la aplicación en medio de una sesión de depuración acalorada – kizzx2
En la perspectiva de depuración de eclipse, busque la vista "Puntos de interrupción". Ahora encuentre el icono de la barra de herramientas con un poco de "J" y un "!", La información sobre herramientas debe leer "Agregar punto de corte de excepción de Java". Al hacer clic en este icono de la barra de herramientas, se abre una ventana donde puede escribir un nombre de excepción y encontrar el que desea. Asegúrate de que esté marcada la opción "Suspender por excepciones no detectadas". Es posible que también desee desmarcar "Suspender excepciones atrapadas" o probablemente suspenderá/abandonará las excepciones que ya se manejan adecuadamente en su código. Luego haz clic en "Aceptar".
Ahora verá su tipo de excepción en la lista de puntos de interrupción y podrá ejecutar su aplicación Java en modo de depuración. Eclipse suspenderá/interrumpirá la excepción no detectada y luego podrá depurar y observar las variables y demás. (Recuerde que puede hacer clic en la pila de llamadas y ver otras variables y métodos)
En la lista de puntos de interrupción, puede desmarcar su tipo de excepción para no suspender o interrumpir esa excepción en particular. Esto es conveniente, por lo que no tiene que eliminar/agregar en tipos de excepción típicos todo el tiempo. Puede imaginar que tengo NullPointerException, IllegalArgumentException, ArrayIndexOutOfBoundsException, entre otros, todos agregados a mi lista y activarlos/desactivarlos según sea necesario.
La pregunta es cómo inspeccionar la excepción (ya se está rompiendo una excepción). –
Normalmente voy a la vista 'Variables' y busco la variable que contiene la excepción (generalmente e), pero creo que depende del contexto específico en el que se produce la excepción, esta no es una información de Eclipse como usted están pidiendo.
- 1. ¿Cómo retroceder en el depurador de Eclipse?
- 2. ¿Cómo puedo establecer la línea de ejecución actual en el eclipse java depurador?
- 3. ¿Cómo usar el depurador OcaIDE en Eclipse?
- 4. Eclipse-CDT: ¿Cómo configuro el depurador para detenerme en una excepción?
- 5. Cómo detener el depurador rieles de la solicitud actual
- 6. Scrapy + Eclipse PyDev: cómo configurar el depurador?
- 7. Usando el depurador remoto Eclipse tiros com.sun.jdi.InternalException
- 8. Depurador y colecciones de Eclipse
- 9. ¿Se producen ciertos errores de excepción solo en el depurador?
- 10. El depurador de Eclipse ejecuta la versión incorrecta del código
- 11. Eclipse con Intel Fortran depurador
- 12. Cómo mostrar la función actual en Eclipse
- 13. Eclipse depurador no trabajar con la Regla poder en Junit
- 14. Mostrar el nombre de la sucursal actual en Eclipse/Subclipse
- 15. Romper el depurador en la aserción fallida
- 16. en C# ¿hay alguna manera, en el depurador, para suprimir una excepción de irrumpir en el depurador?
- 17. Xcode 4.3.2 no mostrará la pila completa de llamadas en el depurador, ¿solo la función actual?
- 18. Punto de interrupción en la excepción en Eclipse: cómo examinar el objeto de excepción?
- 19. Eclipse DLTK y Ruby depurador rápido
- 20. Eclipse: cómo actualizar el proyecto actual programáticamente
- 21. Escribir un depurador de eclipse personalizado
- 22. Eclipse: ¿Obtiene la ubicación del archivo actual?
- 23. Depurador de Eclipse: salte o muestre solo el hilo suspendido
- 24. Desactivar Código caliente Reemplazar para el depurador de Eclipse Java
- 25. Detener el depurador en la línea actual de código que se está ejecutando
- 26. ¿Cómo puedo determinar la excepción actual en un bloque catch (...)?
- 27. ¿Hay alguna manera de iniciar el depurador Ruby en la excepción?
- 28. Eclipse depurador se detiene por sí mismo sin ninguna throwable
- 29. Ignorando el código fuente en el depurador
- 30. comando personalizado para Eclipse en el archivo actual
Eclipse is breaking? ¿Qué tal si miramos el archivo de registro de eclipse para ver qué fue lo que causó esto? – smox
@smox Bueno, si usó la '$ exception' de MSVS, sabrá a qué me refiero. Eso le permite escribir en la vista Expresiones para ver la excepción actual y ver varios campos de forma interactiva. – kizzx2
De acuerdo, leí la pregunta original completamente incorrecta :) ... ¿No puedes presionar más arriba en el StackTrace y luego ver las variables en la excepción? – smox