HttpURLConnection超时能捕获吗
时间: 2023-10-12 22:56:00 浏览: 55
是的,可以捕获HttpURLConnection的超时异常。在使用HttpURLConnection进行网络请求时,可以通过设置连接超时时间和读取超时时间来控制请求的超时时间。当连接超时或读取超时时,将会抛出相应的异常,你可以在代码中捕获并处理这些异常。
以下是一个示例代码,展示了如何使用HttpURLConnection并捕获超时异常:
```java
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
public class HttpURLConnectionTimeoutExample {
public static void main(String[] args) {
try {
URL url = new URL("http://example.com");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// 设置连接超时时间为5秒
connection.setConnectTimeout(5000);
// 设置读取超时时间为10秒
connection.setReadTimeout(10000);
// 发起请求
connection.connect();
// 处理响应...
// 关闭连接
connection.disconnect();
} catch (IOException e) {
if (e instanceof java.net.SocketTimeoutException) {
System.out.println("连接超时或读取超时");
// 处理超时异常...
} else {
System.out.println("其他IO异常");
// 处理其他IO异常...
}
}
}
}
```
在上述示例中,如果连接超时或读取超时,会捕获java.net.SocketTimeoutException异常,并进行相应的处理。如果发生其他IO异常,则会捕获其他IOException,并进行相应的处理。