2012-03-22 40 views
7

Analizar el mensaje de cadena parece malo. ¿O esta excepción no estaba destinada a ser atrapada?Cómo atrapar la IOException "Connection reset by peer"?

java.io.IOException: Connection reset by peer 
    at sun.nio.ch.FileDispatcher.read0(Native Method) 
    at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:21) 
+1

Más detalles ya sea stacktrace o código, por favor –

Respuesta

4

usted necesita coger el IOException y, sí, analizar la cadena.

No hay otra excepción más específica que la de ser atrapada hasta donde yo sé.

O atrape SocketException y, nuevamente, analice la cadena.

Here es el árbol de clases de javadoc (versión 6). Como puede ver, SocketException es la excepción más especializada que se lanzará cuando se restablezca la conexión.

+2

No es una SocketException, es una excepción IOException. La captura de SocketException no funcionará. Tu última oración es completamente incorruptible, si no absurda. – EJP

+0

'Lanzado para indicar que hay un error en el protocolo subyacente, como un error de TCP. (Descripción de SocketException en javadoc) El restablecimiento de la conexión es un error de TCP (Código de error 10054). –

+0

irrelevante. Cuando obtiene una excepción con el texto "reset de conexión", es una 'IOException', no una' SocketException'. Intentalo. No puede inferirlo de la jerarquía de clases Javadoc. – EJP

1

La JVM no hace ninguna diferencia sobre la verdadera causa del error, por lo que arrojará un genéricaIOException en cualquier caso (adaptador desconectado, tiempo de espera, el error ICMP ...). Solo la cadena legible por humanos describe el error y no hay nada que puedas hacer al respecto.

Cuestiones relacionadas