Eclipse4.2.2(与OracleJDK1.7.0一起使用)显示了synchronized-Block中在错误行中抛出的异常,即块的开头。
在现实世界的例子中,发现异常发生的位置并不总是那么容易。有没有办法让Eclipse显示抛出异常的实际行?
最小工作实例:
public class Test {
public static void main(String[] args) {
Test test = new Test();
test.test();
}
void test() {
synchronized (this) {
throw new RuntimeException();
}
}
}Eclipse在这里显示了异常:

堆栈跟踪:

发布于 2013-06-24 08:38:12
您拥有的屏幕截图并不是例外,而是Debug视图。它显示了当前执行线的位置,这是正确的。RuntimeException已经被抛出,现在执行工作正在重新回到顶端。在屏幕截图中,执行已达到第9行。
Eclipse中的Console视图显示了异常,并正确地列出了第10行。
Exception in thread "main" java.lang.RuntimeException
at LineNumber.test(LineNumber.java:10)
at LineNumber.main(LineNumber.java:5)您不能在这里直接检查异常(据我所知),因为它不是在变量中捕获的。但是,如果在异常挂起时进入Preferences -> Debug -> Open弹出,Eclipse将创建一个pop,其中包含可以检查/钻入的异常(行号正确)
https://stackoverflow.com/questions/17270496
复制相似问题