可能重复:
Eclipse debugger always blocks on ThreadPoolExecutor without any obvious exception, why?
Eclipse在finally块中的行下面的run()方法中不断挂起执行:workDone(this);
我没有在这里设置任何断点,我的应用似乎按预期工作。
有关为何发生这种情况的任何指示?
java.util.concurrent.ThreadPoolExecutor
public void run() {
try {
Runnable task = firstTask;
firstTask = null;
while (task != null || (task = getTask()) != null) {
runTask(task);
task = null;
}
} finally {
workerDone(this);
}
}
}
答案 0 :(得分:3)
您的方法调用workerDone
很可能抛出一个异常,该异常未处理并在run
方法之外冒泡。因此线程突然结束,但Eclipse允许您在异常转义方法之前检查该情况。这是一个自动的“异常断点”。