Я давно задумывался об этом, и я послушно поймал все возможные исключения, которые вызывал сервер ServerSocket.close(). Однако ни разу я не видел, как он бросает исключение.ServerSocket.close(). Когда он генерирует исключение?
Javadocs состояние:
Throws:
IOException - if an I/O error occurs when closing the socket.
Однако, как я уже говорил, я никогда не видел его бросать исключение. В каких случаях возникает ошибка ввода-вывода при закрытии serverocket? Можно предположить, код под рукой выглядит следующим образом:
public void terminate() {
try {
serverSocket.close();
} catch (IOException ex) {
System.err.println(ex.getMessage()); // when and how?
}
}
Я искал в Интернете для ответа, но не мог придумать ничего, что бы прояснить это.
@OlaviMustanoja действительно зависит от реализации. Существует множество реализаций сокетов, и каждый из них может иметь независимые ошибки. Кроме того, IOException довольно широк и, похоже, больше похоже на способ реализации любой ошибки ввода-вывода, которую он хочет, и правильной обработки. – Obicere
@Obicere Я понимаю это. Я спрашиваю, когда ServerSocket.close() выдает исключение IOException? Меня не волнует множество других реализаций. –
@OlaviMustanoja точно если указано. В буквальном смысле: 'IOException - если ошибка ввода-вывода возникает при закрытии этого сокета.' Это действительно зависит от реализации 'SocketImpl' – Obicere