是否可以确定finally
仅在被捕获时发生了哪个异常?
以下是标准 ThreadPoolExecutor 代码的摘录:
public void run() {
try {
Runnable task = firstTask;
firstTask = null;
while (task != null || (task = getTask()) != null) {
runTask(task);
task = null;
}
} finally {
workerDone(this);
}
}
即这里没有catch
。我的调试器在调用时停止,workerDone()
指示发生了 RuntimeException,但由于这里没有异常变量,我看不出有什么办法知道错误消息或其他东西。