gpt4 book ai didi

java - 在 Netbeans 的 WorldWindJava 2.1 中捕获 RetrievalUrl 的 UnknownHostException

转载 作者:行者123 更新时间:2023-11-30 10:28:29 24 4
gpt4 key购买 nike

我在 netbeans TopComponent 中使用 WorldWindGlCanvas。当顶级组件打开时,WorldWInd 尝试连接到某些 url(例如 worldwind20.arc.nasa.gov)。如果没有互联网连接,则会发生 UnknowHostException 并显示一个对话框来显示此异常。我想捕获这个异常(exception)。请注意,我知道 worldwind 可以离线工作,我可以将其设置为离线工作,但我想将 worldwind 设置为在线,以便在提供互联网连接时使用在线图 block ,如果没有互联网连接则使用缓存图 block 。有什么办法可以捕获这个异常吗?

最佳答案

查看 World Wind 的源代码,似乎没有办法捕获该异常。

手动断开 Internet 连接后,我收到了以下堆栈跟踪信息:

Jun 16, 2017 6:19:43 PM 
gov.nasa.worldwind.util.SessionCacheRetrievalPostProcessor run
SEVERE: Retrieval failed for https://worldwind26.arc.nasa.gov/elev?EXCEPTIONS=application/vnd.ogc.se_xml&REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.3.0
Jun 16, 2017 6:19:43 PM gov.nasa.worldwind.util.SessionCacheUtils retrieveSessionData
SEVERE: Exception while retrieving resources for https://worldwind26.arc.nasa.gov/elev?EXCEPTIONS=application/vnd.ogc.se_xml&REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.3.0
java.net.UnknownHostException: worldwind26.arc.nasa.gov
...
at gov.nasa.worldwind.retrieve.HTTPRetriever.doRead(HTTPRetriever.java:48)
at gov.nasa.worldwind.retrieve.URLRetriever.read(URLRetriever.java:368)
at gov.nasa.worldwind.retrieve.URLRetriever.call(URLRetriever.java:244)
at gov.nasa.worldwind.retrieve.URLRetriever.call(URLRetriever.java:27)
at gov.nasa.worldwind.util.SessionCacheUtils.retrieveSessionData(SessionCacheUtils.java:80)
at gov.nasa.worldwind.util.SessionCacheUtils.getOrRetrieveSessionCapabilities(SessionCacheUtils.java:170)
at gov.nasa.worldwind.terrain.BasicElevationModel.retrieveResources(BasicElevationModel.java:2028)
at gov.nasa.worldwind.terrain.BasicElevationModel$3.run(BasicElevationModel.java:2118)
at java.lang.Thread.run(Thread.java:745)

基于该堆栈跟踪,我调查了一些源文件:

URLRetriever.java:

try {
...
} catch (Exception e) {
if (!(e instanceof java.net.SocketTimeoutException || e instanceof UnknownHostException
|| e instanceof SocketException)) {
Logging.logger().log(Level.SEVERE,
Logging.getMessage("URLRetriever.ErrorReadingFromConnection", this.url.toString()), e);
}
throw e;
}

SessionCacheUtils.java:

try {
retriever.call();
} catch (Exception e) {
String message = Logging.getMessage("layers.TiledImageLayer.ExceptionRetrievingResources", url.toString());
Logging.logger().log(java.util.logging.Level.SEVERE, message, e);
}

它似乎是在内部处理的,因此您似乎不走运。

关于java - 在 Netbeans 的 WorldWindJava 2.1 中捕获 RetrievalUrl 的 UnknownHostException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44598508/

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