关于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
本文记录了在Java开发过程中遇到java.io.EOFException的解决经历。作者在使用Socket与ObjectInputStream时遇到了此异常,在尝试多种方法后找到了根本原因:在JDK1.7及以后版本中,try{}
241

被折叠的 条评论
为什么被折叠?



