gpt4 book ai didi

java - 在Java中进行远程调用时要处理哪些异常

转载 作者:行者123 更新时间:2023-12-02 11:07:51 26 4
gpt4 key购买 nike

我正在我的应用程序中进行远程调用。我想处理不同的异常并在出现相应异常时执行不同的任务。

我正在调查 MalformedURLExceptionUnknownHostExceptionConnectionExceptionSocketTimeoutException

我知道,如果出现 MalformedURLException,我想删除请求,而这个相当简单。

catch (MalformedURLException e) {
log.info("MalformedURLException while fetching log");
log.info("Content Url is Invalid and is being Dropped");
return keywords;
}

现在,如果互联网断开,我想在一小段时间后重试该请求。这里我应该处理哪个异常?

我对 ConnectExceptionUnknownHostException 感到困惑。

catch (UnknownHostException e) {
log.info("UnknownHostException while fetching log");
log.info("Internet disconnectivity Retrying Content Url");
keywords.add(value);
Thread.sleep(1000);
return keywords;
}

接下来,我在代码中使用 con.setConnectTimeout(20000);con.setReadTimeout(30000); 。所以我猜测如果这个过期了我可以处理 SocketTimeoutException 吗?

catch (SocketTimeoutException e) {
log.info("SocketTimeoutException while fetching log:");
keywords = increaseRetryCount(keywords, result, retryCount, url);
return keywords;
}

我是否正确处理问题并使用正确的异常?如果我遗漏了什么,请告诉我。

最佳答案

当没有连接时,

ConnectExceptionUnknownHostException 都可能发生。当 DNS 缓存中没有条目时,会发生 UnknownHostException;当 DNS 缓存中存在条目但无法访问主机时,会发生 ConnectException

简单地捕获IOException并重试(但不是永远,而是增加暂停并在一段时间后放弃)。

唯一的特殊情况是无效的 URL 或来自服务器的永久错误(例如无效的身份验证,...)。

关于java - 在Java中进行远程调用时要处理哪些异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50811372/

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