迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

Java.Net.UnknownHostException 异常

作者:迹忆客 最近更新:2023/07/11 浏览次数:

本篇文章介绍了 Java 中的 java.net.UnknownHostException 错误。


Java中java.net.UnknownHostException的原因

java.net.UnknownHostException 表示找不到主机名的 IP 地址。 通常,当主机名输入错误时会发生这种情况。

此异常的另一个原因是 DNS 配置错误或 DNS 传播。 新的 DNS 可能需要 48 小时才能在整个互联网上传播。

下面是 Java 中 UnknownHostException 的示例:

package jiyik;

import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

public class Example {
    public static void main(String[] args) {
        String Host_Name = "https://delftstack.co";
        URL Demo_Url = null;

        try {
            Demo_Url = new URL(Host_Name);
            HttpURLConnection Demo_Connection = (HttpURLConnection) Demo_Url.openConnection();
            System.out.println(Demo_Connection.getResponseCode());
        } catch (MalformedURLException me) {
            me.printStackTrace();
        } catch (IOException ie) {
            ie.printStackTrace();
        }
    }
}

上面尝试连接到主机,但主机名有输入错误。 它将抛出 UnknownHostException。

查看输出:

java.net.UnknownHostException: delftstack.co
    at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:567)
    at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
    at java.base/java.net.Socket.connect(Socket.java:633)
    at java.base/sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:299)
    at java.base/sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:174)
    at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:183)
    at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:498)
    at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:603)
    at java.base/sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:266)
    at java.base/sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:380)
    at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:189)
    at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1242)
    at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1128)
    at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:175)
    at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1665)
    at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589)
    at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:529)
    at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:308)
    at jiyik.Example.main(Example.java:16)

java.net.UnknownHostException 是一个已检查异常,可以使用 try-catch 块进行处理。 请参阅下面如何处理 Java 中的 UnknownHostException:

package jiyik;

import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.UnknownHostException;

public class Example {
    public static void main(String[] args) {
        String Host_Name = "https://delftstack.co";
        URL Demo_Url = null;

        try {
            Demo_Url = new URL(Host_Name);
            HttpURLConnection Demo_Connection = (HttpURLConnection) Demo_Url.openConnection();
            System.out.println(Demo_Connection.getResponseCode());
        } catch (UnknownHostException ue) {
            ue.printStackTrace();
        } catch (MalformedURLException me) {
            me.printStackTrace();
        } catch (IOException ie) {
            ie.printStackTrace();
        }
    }
}

防止Java中的java.net.UnknownHostException

为了防止Java中出现 java.net.UnknownHostException,我们应该考虑以下两点:

  1. 首先,确保主机名正确并且没有任何输入错误 - 仔细检查是否有任何输入错误或空格。
  2. 检查 DNS 设置以确保服务器可访问。 新主机名需要一段时间才能跟上 DNS 服务器的速度。

让我们使用正确的主机名尝试相同的示例。 参见示例:

package jiyik;

import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.UnknownHostException;

public class Example {
    public static void main(String[] args) {
        String Host_Name = "http://localhost/";
        URL Demo_Url = null;

        try {
            Demo_Url = new URL(Host_Name);
            HttpURLConnection Demo_Connection = (HttpURLConnection) Demo_Url.openConnection();
            System.out.println(Demo_Connection.getResponseCode());
        } catch (UnknownHostException uhe) {
            uhe.printStackTrace();
        } catch (MalformedURLException me) {
            me.printStackTrace();
        } catch (IOException ie) {
            ie.printStackTrace();
        }
    }
}

上面的代码将正常工作并打印响应代码。 查看输出:

200

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

解决 Java 中 Generic Array Creation 错误

发布时间:2023/07/12 浏览次数:189 分类:Java

本篇文章通过代码示例说明了 generic array creation 错误,并重点介绍了创建通用数组时出现此错误的原因。 本次讨论将得出解决方案,我们将学习如何使用对象数组和反射功能创建通用数组。

修复 Class X Is Public Should BeDeclared in a File Named X.java 错误

发布时间:2023/07/12 浏览次数:192 分类:Java

我们将经历各个阶段,从演示一个编译时错误开始,该错误指出类 X 是公共的,应该在名为 X.java 的文件中声明。 class X is public, should be declared in a file named X.java 的原因 然后,我们将看到导致此

Java 错误 Could Not Reserve Enough Space for Object Heap Minecraft

发布时间:2023/07/11 浏览次数:125 分类:Java

本篇文章介绍了 Java 中的 Could not reserve enough space for object heap 错误。Minecraft 是一款非常流行的用 Java 开发的游戏,我们需要 Java 来运行它。Java 中Minecraft 错误Could not reserve enough space for object h

Java 错误 Cannot Determine a Valid Java Home

发布时间:2023/07/11 浏览次数:149 分类:Java

本篇文章介绍了 Java 中的 cannot determine a valid java home 错误。当 Java Home 路径设置不正确时,会出现 cannot determine a valid java home 错误。 我们必须按照以下步骤正确设置我们的 Java Home 来解决这个问

修复 R 错误 JAVA_HOME Cannot Be Determined From the Registry

发布时间:2023/07/11 浏览次数:140 分类:Java

本篇文章我们将重现使用 R 编程时无法从注册表确定 JAVA_HOME 的错误。 接下来,我们将了解此错误的含义,以找出可能的原因,从而找到解决方案。修复R错误:JAVA_HOME cannot be determined from the

Java 错误 Class Expected

发布时间:2023/07/11 浏览次数:66 分类:Java

在本文中,我们将研究 Java 中的“.class” expected错误是什么。“.class” expected错误是编译时错误。 有些人可能会感到困惑,因为他们认为这是一个运行时错误,但这是错误的。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便