저는 오랫동안이 점에 대해 궁금해했고, ServerSocket.close()를 호출 할 수있는 예외를 잡아 냈습니다. 그러나, 한번 예외를 던지는 것을 보지 못했습니다.ServerSocket.close(). 언제 예외가 발생합니까?
Javadocs 상태 : 내가 말했듯이
Throws:
IOException - if an I/O error occurs when closing the socket.
그러나, 나는 예외를 던지는을 본 적이 없다. 어떤 상황에서 serversocket을 닫는 동안 I/O 오류가 발생합니까? 내가 대답을 위해 인터넷을 검색 한
public void terminate() {
try {
serverSocket.close();
} catch (IOException ex) {
System.err.println(ex.getMessage()); // when and how?
}
}
하지만,이 명확 것 아무것도 올 수없는 : 당신은 손에있는 코드는 다음과 같은 가정 할 수 있습니다.
@OlaviMustanoja 정말 구현에 따라 다릅니다. 수많은 소켓 구현이 있으며 각각 독립적 인 오류가있을 수 있습니다. 또한 IOException 꽤 광범위 하 고 원하는 I/O 기반 오류를 던져 그것을 적절 하 게 처리하는 구현 구현 방법처럼 보인다. – Obicere
@Obicere이 점을 이해합니다. 내가 묻는 것은, 언제 ServerSocket.close()가 IOException을 던질 것인가? 나는 다른 많은 구현에 대해 신경 쓰지 않는다. –
@OlaviMustanoja 정확하게 지정해야합니다. 문자 그대로 :'IOException -이 소켓을 닫을 때 I/O 오류가 발생하는 경우''SocketImpl' 구현에 따라 달라집니다. – Obicere