我使用套接字编写了一个Java客户端 - 服务器应用程序。我正在使用writeUnshared()
的ObjectOutputStream
和readObject()
的ObjectInputStream
。
现在我想检测何时断开连接以便重新连接(例如,当Wifi信号丢失时)。目前,对于ObjectInputStream
我正在捕捉EOFException
和ObjectOutputStream
我正在捕捉IOException
以检测管道是否是borken。
这是正确的还是我应该为两个流捕获IOException
?
您可以访问Javadoc,它建议捕获所有常见I / O相关异常的IOException。
或者你可以通过自己的测试。
或者你可以去source code,它表明当使用“块数据”模式时,只要没有足够的字节来构造一个完整的对象,序列化就会使用EOFException。但是,这不会捕获连接断开的所有情况。
考虑到所有事情,我会推荐IOException。