IntelliJ IDEA:如何创建一个在所有异常*上停止的异常断点*除了* ClassNotFoundException?

时间:2011-06-20 08:32:16

标签: java debugging exception-handling intellij-idea

我想在调试器中运行我的测试套件并打破任何意外的异常,但Java类加载器在正常操作期间会抛出大量的ClassNotFoundExceptions。

因此,如果我可以创建一个忽略ClassNotFoundExceptions并在其他所有内容上停止的异常断点,那就太好了。

3 个答案:

答案 0 :(得分:48)

这个答案与Mindas几乎相同,但细节足以让我第一次忽略他的建议,并打扰Intellij支持男/女(感谢Serge和Eugene):

  • 打开“断点”窗口并转到“例外断点”标签
  • 突出显示并激活“任何例外”断点
  • 仅激活“条件”条件并输入以下内容:

    !(this instanceof java.lang.ClassNotFoundException)
    

IDEA将立即删除“java.lang”(版本11.01),但此解决方案需要它才能运行。如果你不使用它,你会得到一个ClassNotFound弹出框(具有讽刺意味的是讽刺)。

我确实发现许多“标准”库在其正常的操作流程中抛出异常。当您成功忽略ClassNotFoundException时,您会发现其他人突然出现。没有比这更容易了。

答案 1 :(得分:4)

由于某些原因,当我将!ClassNotFoundException条件置于“任何异常”断点规则下时,我一直“无法评估断点表达式”。我能够通过创建自定义的“任何异常”断点项来解决它:

  1. 从调试视图中打开断点窗口。
  2. 取消选中“任何异常”,以便我们不会在使用默认项目的任何异常时停止。
  3. 单击+号,单击java异常断点,选中“Include Non-Project Classes”,在框中键入“java.lang.Exception”,选择框中显示的结果。
  4. 选择列表中生成的异常项(在“任何异常”下),然后输入

    !(this instanceof java.lang.ClassNotFoundException) 
    

    在条件框中。

答案 2 :(得分:2)

  • 右键单击断点,然后单击Properties
  • 转到Conditions窗格
  • 勾选Condition
  • 上的复选框
  • 输入!(myException instanceof ClassNotFoundException)