IntelliJ中是否有“Breaking on Exception”?

时间:2009-06-01 13:21:15

标签: debugging exception intellij-idea

是否有功能会在第一次发生异常时自动中断调试?

所以我们

  1. 启动申请
  2. 做一些引发异常的事情
  3. 让IntelliJ弹出突出显示异常的行。

6 个答案:

答案 0 :(得分:342)

运行|查看断点|例外断点

答案 1 :(得分:135)

弹出对话框的快捷方法是按 Ctrl + SHIFT + F8 (在Mac上: Cmd + SHIFT + F8 ),然后单击“异常断点”选项卡。如果这是您正在查看的最后一个标签,它仍然会被选中,这样就可以轻松地打开和关闭例外。

这将导致IntelliJ在引发异常的代码(或库代码)中断点。具体来说,在进行堆栈查找catch / finally块执行之前,您将获得异常处理的“第一次机会”。


提示:Java在加载类时往往会在内部抛出大量异常,因此打破所有异常会变得相当繁琐。好消息是您可以使用条件字段排除某些类型的异常。

例如:

!(this instanceof java.lang.ClassNotFoundException)

您可以将多个此类条件与&&链接在一起。

enter image description here

答案 2 :(得分:49)

IntelliJ IDEA 14 中转到:

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

如果您不取消选中Caught Exceptions,则每次Java Framework抛出内部异常时都会停止执行。

答案 3 :(得分:12)

是的,有。您需要在IntelliJ IDEA的断点对话框中定义异常断点(可以是“任何异常”)。

如果需要,可以按条件或类过滤异常,或者您是否对捕获或未捕获的异常感兴趣。

答案 4 :(得分:6)

如果单击左上角的小“+”符号,则可以添加新的断点。如果选择Exception Breakpoint,则会出现一个小对话框,您可以在其中输入要中断的异常类(如果您不想中断所有异常)。

答案 5 :(得分:2)

在较新的intellij版本中,它位于 Run > View Breakpoints

然后,您可以检查 Java异常断点-> 任何异常

调试异常的一种好方法是使用主应用程序包和通配符.*。这样一来,您就跳过了所有其他库异常,因为大多数情况下,您都是在寻找应用程序而不是其他任何库抛出的异常(这可能是很多异常)。

作为图像中显示的示例,我每次应用程序引发异常时都使用com.gs.mercury.*中断。如果您将异常用于其目的(处理异常情况而不处理正常情况),则只有在几乎所有时间都达到所需的异常时,才会停止。

PD。添加答案只是为了指出非常有用的 Catch类过滤器

Breakpoints