Я использую http-клиент Java 11 (java.net.http
).
Метод send()
объявляет эти исключения:
@throws IOException
@throws InterruptedException
@throws IllegalArgumentException
@throws SecurityException
Меня интересует отлов исключений, вызванных тайм-аутом. Я подумал, что лучший способ сделать это — поймать HttpTimeoutException
(расширяет IOException
)
Однако иногда я вижу, что когда происходит тайм-аут, возникает исключение:
java.io.IOException: Connection timed out
Теперь мне интересно:
- Почему возникает более общее исключение?
- Как должен быть написан catch, чтобы убедиться, что все возможные исключения, связанные с тайм-аутом, перехвачены?