任何方式只能忽略“通过对等方重置连接”IOExceptions

时间:2012-01-02 10:01:58

标签: java sockets exception io

由于网络问题,我对来自套接字读取调用的大量IOExceptions感到非常恼火。通常它只是意味着有人杀死了子进程或网络严重崩溃(VPN连接丢失等)。

我的服务器无法做任何事情,但我真的不想在日志文件中看到所有这些错误。 java中有没有办法忽略这些异常?

我知道在Windows msdn级别它有一个WSAENETRESET错误,所以为什么所有的错误都被处理成一个通用的IOException而不是ConnectionResetException。

通过对等方重置连接是非常通用和标准的。

我无法确定异常消息是否会出现在不同的Windows操作系统区域设置上。

2 个答案:

答案 0 :(得分:4)

您可以使用getMessage()方法查看异常消息是否属于某种类型:

  

通过对等方重置连接

这不应返回错误消息的本地化版本。这似乎是由getLocalizedMessage()完成的。

答案 1 :(得分:0)

一种方法是,由于重置连接,您可以尝试连接到catch块本身的远程。因此,如果您仍然无法通过,这意味着远程系统仍然处于关闭状态,您可以重复此操作/相应地处理此问题。 如果这是很短的时间,你现在可以连接,你可以以某种方式重新建立连接。

其他方法是按照@npinti

所述的catch块中的异常内容进行检查