Базовый поток может не знать, что он закрыт, пока вы не попытаетесь записать в него (например, если другой конец сокета закрывает его)
Самый простой подход - использовать его и обрабатывать то, что происходит, если онзатем закройте, а не тестируйте сначала.
Независимо от того, что вы тестируете, всегда есть вероятность, что вы получите IOException, поэтому вы не можете избежать кода обработки исключений.Добавление этого теста может усложнить код.