关于Java中EOFException的处理过程记录
之前开发的时候,按照教程敲了代码,结果发现当我声明Socket
并使用ObjectInoutStream
包装字节流从客户端进行读取时,Java骄傲的向我抛出了一个异常java.io.EOFException
java.io.EOFException
!
java.io.EOFException
!!
java.io.EOFException
!!
嗯???
黑人问号???.jpg
WTF???出BUG了??
然而我并没有慌了神,我大喊一声“百度救我!!!”
然后试了百度老哥的无数种方法
包括但不限于
oos.close()
oos.flush()
oos.writeObject(null)
最后,终于发现了这个问题的解决方案
所以问题出在哪里的呢
在JDK1.7之后,JAVA添加了一个新特性。但这个特性既不是针对JVM的,也不是针对基本类型的。
他是针对try{}catch{}
语句的;
添加的全新的写法是这样的
try( /*your code*/)
catch(Exception e) {}
在try
后的括号内可添加需要处理异常的语句,但与其它语句不同的是,括号内的语句一旦执行完毕,就会自动释放资源,导致EOFException