首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于if(socket != null) socket.close();

关于if(socket != null) socket.close();
EN

Stack Overflow用户
提问于 2018-10-23 17:17:22
回答 1查看 265关注 0票数 0

在第一次学习网络时,我发现了一些关于套接字的例子。但是我不明白"if(socket != null)“是什么意思。

然后..。这就是代码。

代码语言:javascript
复制
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)是什么意思。它是否存在于一些未知的异常中?

)对不起,我的英语不好。因为我不是英语母语。)

EN

回答 1

Stack Overflow用户

发布于 2018-10-23 17:26:23

Thomas是正确的,您不希望在空对象上调用socket.close()。

Finally块将始终在try块之后执行,无论它们是否在没有异常的情况下完成所有任务,或者是否抛出异常。

如果在套接字为空的情况下到达finally块,则不需要对资源做任何操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52945424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档