【问题标题】:Java exception breakpoint with condition in EclipseEclipse中带有条件的Java异常断点
【发布时间】:2015-07-09 07:48:19
【问题描述】:

有没有办法(包括第三方插件)在 Eclipse 中创建一个 Java 异常断点只有在条件为真时才中断

当前用例:我正在尝试捕获特定类的 ClassNotFoundException 以调试类加载问题。不幸的是,我的断点实际上捕获了 Tomcat 启动时发生的数千个不相关的例行异常。我想告诉 Eclipse 只有在 -1 < e.getMessage().indexOf(MY_CLASS_NAME) 时才中断。

帮忙!?

更新:有几个答案建议右键单击异常属性中的异常并单击条件断点。我已经试过了。至少在 Eclipse Luna Release 2(v 4.4.2,内部版本号 20150219-0600)之前,此选项不适用于 exception 断点 .

为清楚起见,这是我的异常断点属性的图片:

【问题讨论】:

  • 如何在ClassNotFoundException(String s) 构造函数上添加一个常规断点并将您的条件置于该断点中?

标签: java eclipse debugging exception


【解决方案1】:

没有选项可以为类似于正常断点的异常断点添加条件。您可以做的最接近的事情是使用 Filtering 属性页面在断点上添加过滤器,例如引发异常的类和/或包。或者您可以在调试时过滤特定线程。

请参阅http://help.eclipse.org/juno/topic/org.eclipse.jdt.doc.user/tasks/tasks-create-exception-filter-expression.htm 了解更多信息。

【讨论】:

  • 过滤可以设置为一些加载大量类的类加载器类。它有什么帮助?
  • @TMG 我想它可以缩小对引发异常的类的搜索范围,只要它减少执行暂停的次数。
【解决方案2】:

右击你的断点! -> 属性 -> 条件断点

【讨论】:

  • 我没有异常断点的这个选项,只有常规断点。 (注:Eclipse 版本=Juno Service Release 2, 20130225-0426)
【解决方案3】:

右键单击断点,菜单的最后一行:“断点属性”。您会发现一个带有“条件”的复选框。然后你只需在编辑框中添加-1 < e.getMessage().indexOf(MY_CLASS_NAME)

【讨论】:

  • 我没有异常断点的这个选项,只有常规断点。 (注:Eclipse 版本=Juno Service Release 2, 20130225-0426)
  • 不能在异常断点中添加条件。最好的方法是使用 Try .. 捕获并将断点放入其中,使用 System.out.println(e.getMessage()) 之类的东西,并在那里设置条件断点。
  • 我无法编辑正在抛出的代码。它位于我无法控制的 JAR 中。
  • 在断点的过滤中,你可以在'Restrict to Selected Location'中选择你想要中断的包或女巫中的类。
猜你喜欢
  • 2014-10-31
  • 2013-01-01
  • 1970-01-01
  • 2019-05-16
  • 2011-03-28
  • 1970-01-01
  • 1970-01-01
  • 2012-05-02
  • 1970-01-01
相关资源
最近更新 更多