繁体   English   中英

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

[英]About if(socket != null) socket.close();

在第一次学习网络时,我发现了一些有关套接字的示例。 但是我不明白“ 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();
            }
        }
    }
}

在最后{try ....块中,我无法理解if(socket!= null)的意思。 是否存在某些未知异常?

(对不起,我的英语不好。因为我不是英语本地人。)

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

最终块将始终在try块之后执行,无论它们是否无例外地完成所有任务或是否抛出异常。

如果在socket为null的情况下到达了finally块,则无需对资源做任何事情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM