2009-06-01 9 views
236

¿Hay una función que automáticamente interrumpirá la depuración en la primera aparición de excepción?¿Hay un "Break on Exception" en IntelliJ?

Así que

  1. solicitud de inicio
  2. hacer algo que lanzar una excepción
  3. tiene IntelliJ apareció la línea resaltada donde se produjo la excepción.

Respuesta

279

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

12

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

Las excepciones se pueden filtrar por condición o clase, si lo desea, o por si le interesan las excepciones detectadas o no detectadas.

118

Una forma rápida para que aparezca el cuadro de diálogo es presionar Ctrl + SHIFT + F8 (En Mac: Cmd + SHIFT + F8), a continuación, haga clic sobre los puntos de interrupción de excepción lengüeta. Si esa fue la última pestaña que estaba viendo, seguirá siendo seleccionada, lo que facilita el parpadeo de las excepciones activadas y desactivadas.

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


TIP: Java tiende a tirar un montón de excepciones internamente cuando la carga de clases, por lo que esta ruptura en todas las excepciones puede llegar a ser bastante tedioso. La buena noticia es que puede excluir ciertos tipos de excepción usando el campo condición.

Por ejemplo:

!(this instanceof java.lang.ClassNotFoundException) 

Puede múltiples cadena tales condiciones junto con &&.

enter image description here

+0

Cuando se produce una excepción, IDEA resalta no la línea correcta, ¿qué puedo hacer? –

+1

@VitalyZdanevich, no sé. Debería hacer una nueva pregunta. –

+0

@VitalyZdanevich, recompile el programa. los archivos de depuración probablemente estén obsoletos. –

4

Si hace clic en el pequeño signo "+" en la esquina superior izquierda, se puede añadir un nuevo punto de interrupción. Si selecciona Exception Breakpoint, obtendrá un pequeño diálogo donde puede ingresar a la clase de excepción para interrumpir (en caso de que no quiera romper todas las excepciones).

40

En IntelliJ IDEA 14 ir a:

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

Si no desactiva Caught Exceptions la ejecución se detendrá cada vez que el Java Framework se emite una excepción interna.

+1

Ejecutar -> Ver puntos de interrupción ... -> Comprobar "Puntos de excepción de Java" -> Desmarcar "Excepciones atrapadas" – Jonas

+2

Desafortunadamente, esto todavía se rompe en excepciones detectadas para mí, incluso después de deshabilitar "excepciones detectadas". – Carcigenicate

+1

Desmarcando 'Caught Exceptions' es exactamente lo que estaba buscando! ¿Cómo es que esto no se votó más? – Dylanthepiguy