Любой способ игнорировать только IOExceptions «сброс соединения по пиру» - PullRequest
2 голосов
/ 02 января 2012

Меня очень раздражает множество исключений ввода-вывода из вызовов чтения сокетов из-за проблем с сетью.Обычно это просто означает, что кто-то убил дочерний процесс или сеть вышла из строя (оборвано VPN-соединение и т. Д.).

Мой сервер ничего не может сделать, но я действительно не хочу видеть все эти ошибки в файлах журнала.Есть ли способ в java игнорировать эти исключения?

Я знаю, что на уровне Windows MSDN это ошибка WSAENETRESET, так почему все ошибки обрабатываются в общем IOException, а не ConnectionResetException.

Сброс соединения через одноранговый узел является чем-то очень общим и стандартным.

Я не могу определить, будет ли сообщение об исключении появляться локализованным в разных локалях ОС Windows.

Ответы [ 2 ]

4 голосов
/ 02 января 2012

Вы можете использовать метод getMessage () , чтобы увидеть, является ли сообщение об исключении чем-то вроде:

Сброс соединения по пиру

Это не должно возвращать локализованную версию сообщения об ошибке. Похоже, это делается с помощью getLocalizedMessage () .

0 голосов
/ 02 января 2012

Один способ, так как соединение сбрасывается, вы можете попробовать подключиться к пульту в самом блоке перехвата. Так что, если вы все еще не можете пройти, это означает, что удаленная система все еще не работает, и вы можете повторить это / обработать это соответственно. Если это было в течение очень короткого времени, и вы можете подключиться сейчас, вы можете каким-то образом восстановить соединение.

Другой способ - проверить содержимое исключения в блоке catch, как описано в @ npinti

...