gpt4 book ai didi

java - 捕获 SocketTimeOut 错误并响应

转载 作者:行者123 更新时间:2023-12-01 15:43:58 25 4
gpt4 key购买 nike

我有一个 Activity 需要 jsoup 连接到 URL。

问题是我时不时会遇到

09-21 23:11:56.140: WARN/System.err(5725): java.net.SocketTimeoutException: Connection timed out
09-21 23:11:56.140: WARN/System.err(5725): at org.apache.harmony.luni.platform.OSNetworkSystem.connect(Native Method)
9-21 23:11:56.140: WARN/System.err(5725): at dalvik.system.BlockGuard$WrappedNetworkSystem.connect(BlockGuard.java:369)
09-21 23:11:56.140: WARN/System.err(5725): at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:208)
09-21 23:11:56.140: WARN/System.err(5725): at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:431)
09-21 23:11:56.140: WARN/System.err(5725): at java.net.Socket.connect(Socket.java:901)
09-21 23:11:56.140: WARN/System.err(5725): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:75)
09-21 23:11:56.140: WARN/System.err(5725): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:48)

我想找出一种方法,当这种情况发生时,我会继续尝试,直到尝试 3 次为止。

我正在考虑捕获异常,然后使用 for 循环计数器。我可以使用这个的一些实现和一些答案。

有什么建议吗?

最佳答案

为了确认,您希望执行一个可能会暂时失败的特定操作,并在该操作成功时返回一个对象?

我之前为此使用过以下模式。

public class RetryUtil {
public static <T> tryAction(Callable<T> action, int maxTimes);
}

实现它,以便在该函数成功时返回 Callable 的结果,并在失败时再次尝试(按照您的建议使用循环)。

然后,您在匿名 Callable 中定义可重复操作,并将其传递给 tryAction。

关于java - 捕获 SocketTimeOut 错误并响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7509152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com