UF.SOCK

当尝试使用已被释放的资源时,就会报告 UF(使用已释放)问题。UF.SOCK 警告表明尝试在套接字已被关闭后使用它。

示例 1

复制
     private Socket s;
 
     private void message(final Socket s, final String message) {
         try {
             s.getOutputStream().write(message.getBytes());
         } catch (IOException e) {
             try {
                 s.close();
             } catch (IOException e1) {
                 //ignore
             }
         }
     }
 
     public void handshake() {
         message(s, "hello");
     }
 
     public void requestData(final String key) throws IOException {
         handshake();
         message(s, "get_data[" + key + ']');
     }

针对第 36 行的代码段报告 UF.SOCK:如果在第 20 行引发 IOExcpetion,则将在第 23 行关闭 socket。但是,无论套接字是否关闭,在第 36 行调用的方法 message 将尝试写入该套接字。