在第一次学习网络时,我发现了一些关于套接字的例子。但是我不明白"if(socket != null)“是什么意思。
然后..。这就是代码。
import java.net.ServerSocket;
import java.net.Socket;
public class MainClass {
public static void main(String[] args) {
ServerSocket serverSocket = null;
Socket socket = null;
try {
serverSocket = new ServerSocket(9000);
socket = serverSocket.accept();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
// Here it is
if(socket != null) socket.close();
if(serverSocket != null) serverSocket.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
}在最后{尝试....块,我不明白if(socket != null)是什么意思。它是否存在于一些未知的异常中?
)对不起,我的英语不好。因为我不是英语母语。)
发布于 2018-10-23 17:26:23
Thomas是正确的,您不希望在空对象上调用socket.close()。
Finally块将始终在try块之后执行,无论它们是否在没有异常的情况下完成所有任务,或者是否抛出异常。
如果在套接字为空的情况下到达finally块,则不需要对资源做任何操作。
https://stackoverflow.com/questions/52945424
复制相似问题