Можно ли определить, какое исключение произошло, когда оно было перехвачено только 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, но, поскольку здесь нет переменной исключения, я не вижу способа узнать сообщение об ошибке или что-то в этом роде.