¿Existe una "interrupción por excepción" en IntelliJ?

Resuelto Mike Chaliy asked hace 15 años • 6 respuestas

¿Existe alguna característica que interrumpa automáticamente la depuración cuando ocurre la primera excepción?

Así que nosotros

  1. iniciar la aplicación
  2. hacer algo que arroje una excepción
  3. Consiguió que IntelliJ apareciera una línea resaltada donde ocurrió la excepción.
Mike Chaliy avatar Jun 01 '09 20:06 Mike Chaliy
Aceptado

Ejecutar | Ver puntos de interrupción | Puntos de interrupción de excepción

Mike Chaliy avatar Jun 01 '2009 13:06 Mike Chaliy

Una forma rápida de abrir el cuadro de diálogo es presionar Ctrl+ SHIFT+ F8(en Mac: Cmd+ SHIFT+ F8), luego hacer clic en la pestaña de puntos de interrupción de excepción. Si esa fue la última pestaña que estaba viendo, seguirá seleccionada, lo que facilitará activar y desactivar las excepciones.

Esto hará que IntelliJ se interrumpa en el punto del código (o código de la biblioteca) donde se generó la excepción. Específicamente, obtienes una 'primera oportunidad' en el manejo de excepciones, antes de que se recorra la pila en busca de bloques catch/finally para ejecutar.


SUGERENCIA: Java tiende a generar muchas excepciones internamente al cargar clases, por lo que desglosar todas las excepciones puede resultar bastante tedioso. La buena noticia es que puedes excluir ciertos tipos de excepción utilizando el campo de condición .

Por ejemplo:

!(this instanceof java.lang.ClassNotFoundException)

Puede encadenar varias de estas condiciones junto con &&.

ingrese la descripción de la imagen aquí

Drew Noakes avatar Apr 27 '2011 21:04 Drew Noakes

En IntelliJ IDEA 14 vaya a:

Run -> View Breakpoints -> Check "Java Exceptions Breakpoints" -> Uncheck "Caught Exceptions"

Si no desmarca Caught Exceptionsla ejecución, se detendrá cada vez que se Java Frameworkproduzca una excepción interna.

Tonatio avatar Feb 12 '2015 14:02 Tonatio

En las versiones más recientes de intellij, se encuentra en Ejecutar > Ver puntos de interrupción .

Luego puede verificar los puntos de interrupción de excepción de Java -> Cualquier excepción .

Una buena forma de depurar las excepciones es utilizar el paquete de la aplicación principal y el comodín .*. De esta manera, omitirá todas las demás excepciones de bibliotecas, ya que la mayoría de las veces busca excepciones generadas por su aplicación y no por ninguna otra biblioteca (que pueden ser muchas excepciones).

Como se muestra en el ejemplo de la imagen, suelo com.gs.mercury.*interrumpir cada vez que la aplicación arroja una excepción. Si usa excepciones para lo que sirven (para manejar casos excepcionales y no para manejar el flujo de situaciones normales), solo se detendrá cuando alcance la excepción deseada casi todo el tiempo.

Utilizaría filtros de clase Catch para especificar las clases de las excepciones que espera detectar, y filtros de clase para especificar en qué clases espera detectar la excepción.

Nota: Se agregó la aclaración entre los filtros de clase Catch y los filtros de clase realizada por @Roman en los comentarios.

PD. Se agregó la respuesta solo para señalar los filtros de clase Catch y los filtros de clase bastante útiles .

Puntos de interrupción

Jose Da Silva Gomes avatar Mar 07 '2020 02:03 Jose Da Silva Gomes

Sí hay. Debe definir un punto de interrupción de excepción (puede ser "Cualquier excepción") en el cuadro de diálogo de puntos de interrupción en IntelliJ IDEA.

Las excepciones se pueden filtrar por condición o clase si lo desea, o según si está interesado en excepciones detectadas o no detectadas.

Avi avatar Jun 01 '2009 14:06 Avi