В Java может ли считыватель потока канала процесса встретиться с IOException?
У меня есть некоторый Java-код, который запускает другие процессы и читает их вывод, используя BufferedReader
по телефону java.io.BufferedReader#readLine()
в петле. Иногда я вижу это java.io.BufferedReader#readLine()
бросает IOException
Например, когда процесс неожиданно завершается (в моем случае это может произойти) и т. д.
Вопрос в том, как правильно обращаться с BufferedReader#readLine()
бросание IOException
: есть ли случай, когда чтение из потока снова может продолжить потреблять вывод процесса (предполагая, что это была какая-то временная ошибка), или делает IOException
значит поток находится в состоянии сбоя и должен быть закрыт и закрыт?
Я предполагаю, что вся проблема сводится к одной вещи, если поток канала, сталкивающийся с ошибкой ввода-вывода, может позже восстановиться от него и продолжить чтение или нет. Мой интуитивный инстинкт подсказывает мне, что это зависит от базовой операционной системы / реализации JVM, но мне бы хотелось услышать мнения людей, лучше разбирающихся в этой теме, чем я.