Java.Net.UnknownHostException
-
Causas de la
java.net.UnknownHostException
en Java -
Evite la excepción
java.net.UnknownHostException
en Java
Este tutorial demuestra el error java.net.UnknownHostException
en Java.
Causas de la java.net.UnknownHostException
en Java
La java.net.UnknownHostException
significa que no se puede encontrar la dirección IP del nombre de host. Por lo general, esto sucede cuando hay un error de escritura en el nombre de host.
Otro motivo de esta excepción es la mala configuración de DNS o la propagación de DNS. Puede tomar 48 horas para un nuevo DNS para toda la propagación de Internet.
Aquí hay un ejemplo de UnknownHostException
en Java:
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();
}
}
}
Lo anterior intenta conectarse a un host, pero el nombre del host tiene un error de tipeo. Lanzará la UnknownHostException
.
Ver salida:
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)
La excepción java.net.UnknownHostException
es una excepción comprobada y puede manejarse usando los bloques try-catch
. Vea a continuación cómo manejar la UnknownHostException
en Java:
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();
}
}
}
Evite la excepción java.net.UnknownHostException
en Java
Para evitar la excepción java.net.UnknownHostException
en Java, debemos considerar los siguientes dos puntos:
- Primero, asegúrese de que el nombre de host sea correcto y no tenga ningún error de tipeo; vuelva a verificar si hay errores de tipeo o espacios en blanco.
- Verifique la configuración de DNS para asegurarse de que se pueda acceder al servidor. El nuevo nombre de host tardará en ponerse al día en el servidor DNS.
Probemos el mismo ejemplo con el nombre de host correcto. Ver ejemplo:
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();
}
}
}
El código anterior funcionará correctamente e imprimirá el código de respuesta. Ver salida:
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 FacebookArtículo relacionado - Java Error
- Arreglar Java fue iniciado por el código de salida devuelto = 1
- Arreglar JAVA_HOME no se puede determinar a partir del error de registro en R
- Arreglar java.io.IOException: No queda espacio en el dispositivo en Java
- Arreglar Java.IO.NotSerializableException en Java
- Arreglar Java.Lang.IllegalStateException de Android: no se pudo ejecutar el método de la actividad
- Arreglar Java.Lang.NoClassDefFoundError: No se pudo inicializar el error de clase