При использовании java.net.Socket.connect()
как отказанное соединение, так и тайм-аут приводят к ConnectException
.
java.net.ConnectException: Connection timed out: connect
java.net.ConnectException: Connection refused: connect
Как можно безопасно различать эти два?Конечно, разбор сообщения об ошибке делает работу.Но когда сообщение изменится в будущем выпуске Java, мне не повезет.
Общая картина: я пишу клиент веб-службы, использующий JAX-WS с реализацией Metro.Когда происходит сбой вызова веб-службы, я хочу четко сообщить причину сбоя, чтобы проблема могла быть быстро решена.