В моем коде возникла прерванная исключительная ситуация, и я пытаюсь понять, почему.
В результате получается, что я пытаюсь создать файлы в каком-либо месте моей файловой системы, вызывая FilesUtils.filesMethod ()..
Если я получаю IOException, я пытаюсь спать в течение 100 мс.Во время сна мне нужно проверить, не прерываюсь ли я (потому что InterruptedException - это исключение проверки со сном).
если так, я печатаю «Got interrupted» и получаю для флага прерывания текущего потока значение true.
Я получаю сообщение "Got interrupted" в моем журнале.
Нигде в моем коде нет команды interrput () для этого потока.
что это может быть?
мог бы этот senario иметь смысл:
метод ilesUtils.filesMethod () выбрасывает InterruptedIOException, потому что поток был закрыт под потоками потоков.Кроме того, это InterruptedIOException устанавливает для флага прерывания значение true.
Я ловлю InterruptedIOException в своем улове (IOException e).
Сон проверяет, не прерван лифлаг это правда.это так (см. 1), поэтому он создает исключение InterruptedException.
Может ли это иметь место?
try {
FilesUtils.filesMethod();
break;
} catch (IOException e) {
try {
TimeUnit.MILLISECONDS.sleep(100);
} catch (InterruptedException e1) {
log.info("Got interrupted", e1);
Thread.currentThread().interrupt();
}
}