Просто взгляните на один из наиболее часто используемых интерфейсов с методом close, java.sql.Connection
:
Здесь выдается исключение:
SQLException if a database access error occurs or this method is called on a closed connection
Это в основном то, что имеет смысл: при вызове метода close
разработчик охотно закрывает любой объект (Connection
, Socket
, Stream
, ...) и, следовательно, оставляет это, как вы уже заявили, в несуществующем состоянии. Если сейчас разработчик пытается вызвать какую-то функцию для закрытого объекта, он должен получить ошибку, поэтому единственное правильное действие, которое необходимо сделать здесь, - это исключение.