java - Cómo utilizar los puntos de interrupción de excepción de Intellij Idea
debugging exception (2)
Esto parece una pregunta tonta, pero no puedo averiguar cómo depurar excepciones en Intellij Idea. Google no ayuda tampoco.
Intento crear puntos de interrupción de excepción. Cuando se rompe IDEA, espero que me brinde una pila de llamadas que muestre lo que lleva al método que lanza la excepción, así como la ventana de visualización automática, como la herramienta de depuración de Visual Studio. En su lugar, muestra todo tipo de mensajes confusos sobre Launcher
o ClassLoader
, pero no hay signos de la excepción real durante el tiempo de ejecución.
Entonces, ¿cómo se debe utilizar exactamente el punto de interrupción de excepción de IDEA?
Finalmente me di cuenta por mí mismo. En la ventana View Breakpoints
, marque Any Exception
pero desmarque la marca para la Caught exception
. La JVM captura y maneja internamente las excepciones del iniciador y del cargador de clases. De esta manera, se capturarán las excepciones de los usuarios sin especificar manualmente el tipo de excepción.
Funciona muy bien y no sé qué tipo de problemas tiene con Launcher o ClassLoader. Es posible que haya seleccionado capturar Any exceptions
y esto significa que también detectará todo tipo de excepciones durante el inicio y la carga de clases. Tiene que tomar decisiones específicas sobre qué excepciones capturar, o simplemente repasarlas todas hasta que se detecte su excepción.
De todos modos, le mostraré cómo configuro un caso muy simple y verá que está funcionando muy bien.
Tengo un caso simple donde se lanzará una NullPointerException
.
Primero tendrás que configurar el punto de interrupción de excepción.
Ingrese a la ventana View Breakpoints...
presionando Ctrl + Mayús + F8 . Luego presione el pequeño signo + en la esquina superior izquierda.
Ingrese NullPointerException y presione el botón OK
.
Asegúrese de que la Any exception
no esté marcada.
Ahora ejecute el programa haciendo clic derecho dentro del método principal y seleccione Debug ''SomeClass.main()''
Y finalmente observe cuándo se detecta la excepción y tendrá todas las cosas que esperaba, como la pila de llamadas y la ventana de vigilancia .