小编use*_*421的帖子

java 11 HTTP 客户端上的“java.io.IOException:连接超时”VS HttpTimeoutException

我正在使用 Java 11 http-client ( java.net.http)。

send()方法声明了这些异常:

@throws IOException
@throws InterruptedException
@throws IllegalArgumentException
@throws SecurityException
Run Code Online (Sandbox Code Playgroud)

我对捕获超时引起的异常感兴趣。我认为最好的方法是抓住 HttpTimeoutException(扩展IOException

但是,我有时会看到,当发生超时时,引发的异常是:

java.io.IOException: Connection timed out
Run Code Online (Sandbox Code Playgroud)

现在我想知道:

  1. 为什么会抛出更一般的异常?
  2. 应该如何编写 catch 以确保捕获所有可能的超时相关异常?

java timeoutexception java-http-client java-11

5
推荐指数
1
解决办法
1251
查看次数