【发布时间】:2015-08-24 12:49:08
【问题描述】:
我正在使用 Eclipse Luna(也在 Kepler 中测试过,因此不是特定于版本的)。在 JDK 1.8_40 上运行。 我想找到有“吃过”例外的地方 - 例如。使用 try/catch 块处理不当。
下面的示例代码。当我在图片上设置异常断点时,e.printStackTrace() 不会因异常而停止。
如何使这项工作或任何解决方法/替代方案?找出您的代码正在捕获的内容很方便,而不是查看所有库代码异常处理。
注意:当然,如果我们删除范围,它将不正确地停止在 BigDecimal 中。在哪里引发异常,以及在 main() 执行期间的任何其他异常 - 在这种情况下是一些 ClassNotFoundException s
常识说它是一个被捕获的位置,范围匹配和异常类型也是(子类型)。
API 描述说它应该可以正常工作(为每次抛出找到一个相关的捕获): http://docs.oracle.com/javase/8/docs/jdk/api/jpda/jdi/com/sun/jdi/event/ExceptionEvent.html#catchLocation--
我可以看到这可能与 Java 调试接口本身有关 从很久很久以前 java 1.4 开始 - 但不确定在什么时候吃掉了多少事件:
https://bugs.openjdk.java.net/browse/JDK-4515254
package test.me;
import java.math.BigDecimal;
public class EatExceptionBreakpoint {
public static void main(String[] args) {
try {
new BigDecimal("10 "); // how to make Exception Breakpoint to stop ?
} catch (Exception e) {
e.printStackTrace();
}
new BigDecimal("20 ");
}
}
【问题讨论】:
-
你在this thread看过答案了吗?
-
我的主题是关于异常断点。我试图理解link中handleBreakpointEvent(...) 背后的意图@
标签: java eclipse debugging exception