java.net.UnknownHostException: Ugyldigt værtsnavn til server

1. Introduktion

I denne vejledning lærer vi årsagen til UnknownHostException med et eksempel. Vi diskuterer også mulige måder at forhindre og håndtere undtagelsen på.

2. Hvornår kastes undtagelsen?

UnknownHostException angiver, at værtsnavnets IP-adresse ikke kunne bestemmes.Det kan ske på grund af en skrivefejl i værtsnavnet:

Strengværtsnavn = "// locaihost"; URL url = ny URL (hostname); HttpURLConnection con = (HttpURLConnection) url.openConnection (); con.getResponseCode ();

Ovenstående kode kaster en UnknownHostException siden stavet forkert locaihost peger ikke på nogen IP-adresser.

En anden mulig årsag til UnknownHostException er forsinkelse af DNS-formering eller DNS-fejlkonfiguration.

Det kan tage op til 48 timer, før en ny DNS-post udbredes overalt på Internettet.

3. Hvordan undgår man det?

At forhindre undtagelsen i at forekomme i første omgang er bedre end at håndtere den bagefter. Et par tip til at forhindre undtagelsen er:

  1. Dobbeltkryds værtsnavnet: Sørg for, at der ikke er nogen skrivefejl, og beskær alle mellemrum.
  2. Kontroller systemets DNS-indstillinger: Sørg for, at DNS-serveren er tilgængelig og tilgængelig, og hvis værtsnavnet er nyt, skal du vente på, at DNS-serveren indhenter.

4. Hvordan håndteres det?

UnknownHostException strækker sig IOUndtagelse, som er en kontrolleret undtagelse. I lighed med enhver anden kontrolleret undtagelse skal vi enten smide den eller omgive den med en prøve-fangst blok.

Lad os håndtere undtagelsen i vores eksempel:

prøv {con.getResponseCode (); } fange (UnknownHostException e) {con.disconnect (); }

Det er en god praksis at lukke forbindelsen, når UnknownHostException opstår. En masse spildende åbne forbindelser kan få applikationen til at løbe tør for hukommelse.

5. Konklusion

I denne artikel lærte vi, hvad der forårsager det UnknownHostException, hvordan man forhindrer det, og hvordan man håndterer det.

Som altid er koden tilgængelig på Github.


$config[zx-auto] not found$config[zx-overlay] not found