Java.Net.UnknownHostException
이 자습서는 Java의 java.net.UnknownHostException
오류를 보여줍니다.
Java에서 java.net.UnknownHostException
의 원인
java.net.UnknownHostException
은 호스트 이름의 IP 주소를 찾을 수 없음을 의미합니다. 일반적으로 이것은 호스트 이름에 입력 실수가 있을 때 발생합니다.
이 예외의 또 다른 이유는 잘못된 DNS 구성 또는 DNS 전파입니다. 인터넷 전파를 위한 새 DNS에 48시간이 걸릴 수 있습니다.
다음은 Java에서 UnknownHostException
의 예입니다.
package delftstack;
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 delftstack.Example.main(Example.java:16)
java.net.UnknownHostException
은 확인된 예외이며 try-catch
블록을 사용하여 처리할 수 있습니다. Java에서 UnknownHostException
을 처리하는 방법은 아래를 참조하십시오.
package delftstack;
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
을 방지하려면 다음 두 가지 사항을 고려해야 합니다.
- 먼저 호스트 이름이 정확하고 입력 실수가 없는지 확인하십시오. 입력 실수나 공백이 있는지 다시 한 번 확인하십시오.
- DNS 설정을 확인하여 서버에 연결할 수 있는지 확인합니다. 새 호스트 이름은 DNS 서버를 따라잡는 데 시간이 걸립니다.
올바른 호스트 이름으로 동일한 예를 시도해 보겠습니다. 예를 참조하십시오:
package delftstack;
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
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn Facebook