В одном примере встретил такой код:
try {
// какие-то операции с объектом из библиотеки concurrent
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
throw new WorkException(e);
}
Какой может быть в этом смысл? Насколько я понимаю, строка
Thread.currentThread().interrupt();
вызовет выброс InterruptedException в текущем треде и потому строка
throw new WorkException(e);
уже выполняться не будет.
Чем вообще отличается
Thread.currentThread().interrupt();
от
throw new InterruptedException();
?