Eclipse 4.2.2(与Oracle JDK 1.7.0一起使用)显示在synchronized
内的异常 - 块在错误的行中,即块的开头。
在实际示例中,发现异常发生的行并不总是很容易。 有没有办法让Eclipse显示抛出异常的实际行?
最小的工作示例:
public class Test {
public static void main(String[] args) {
Test test = new Test();
test.test();
}
void test() {
synchronized (this) {
throw new RuntimeException();
}
}
}
Eclipse在这里显示异常:
堆栈追踪:
答案 0 :(得分:5)
您拥有的屏幕截图不是例外,而是Debug视图。它显示了当前执行线的位置和正确性。抛出了RuntimeException,现在执行正在解开回到顶部。在screeenshot,执行已达到第9行。
Eclipse中的Console视图显示了例外情况,并正确地列出了第10行。
Exception in thread "main" java.lang.RuntimeException
at LineNumber.test(LineNumber.java:10)
at LineNumber.main(LineNumber.java:5)
你不能直接在这里检查Exception(据我所知),因为它没有在变量中捕获)。但是如果你去偏好 - > Java - >调试 - >打开Popup当Suspended on Exception时,Eclipse将创建一个包含Exception(具有正确的行号)的pop,您可以检查/钻取