java.net.UnknownHostException: ongeldige hostnaam voor server

1. Inleiding

In deze tutorial leren we de oorzaak van UnknownHostException met een voorbeeld. We bespreken ook mogelijke manieren om de uitzondering te voorkomen en af ​​te handelen.

2. Wanneer wordt de uitzondering geworpen?

UnknownHostException geeft aan dat het IP-adres van een hostnaam niet kon worden bepaald.Het kan gebeuren door een typefout in de hostnaam:

String hostnaam = "// locaihost"; URL url = nieuwe URL (hostnaam); HttpURLConnection con = (HttpURLConnection) url.openConnection (); con.getResponseCode ();

De bovenstaande code gooit een UnknownHostException sinds het verkeerd gespelde locaihost verwijst niet naar IP-adressen.

Een andere mogelijke reden voor UnknownHostException is DNS-propagatievertraging of DNS-verkeerde configuratie.

Het kan tot 48 uur duren voordat een nieuwe DNS-vermelding overal op internet wordt verspreid.

3. Hoe kan ik dit voorkomen?

In de eerste plaats voorkomen dat de uitzondering optreedt, is beter dan deze erna af te handelen. Een paar tips om de uitzondering te voorkomen zijn:

  1. Controleer de hostnaam nogmaals: Zorg ervoor dat er geen typefout is en trim alle witruimten.
  2. Controleer de DNS-instellingen van het systeem: Zorg ervoor dat de DNS-server actief en bereikbaar is, en als de hostnaam nieuw is, wacht dan tot de DNS-server het heeft ingehaald.

4. Hoe ermee om te gaan?

UnknownHostException strekt zich uit IOException, wat een gecontroleerde uitzondering is. Net als bij elke andere aangevinkte uitzondering, moeten we deze ofwel gooien of omringen met een proberen te vangen blok.

Laten we de uitzondering in ons voorbeeld afhandelen:

probeer {con.getResponseCode (); } catch (UnknownHostException e) {con.disconnect (); }

Het is een goede gewoonte om de verbinding te verbreken wanneer UnknownHostException treedt op. Veel verkwistende open verbindingen kunnen ervoor zorgen dat de toepassing onvoldoende geheugen heeft.

5. Conclusie

In dit artikel hebben we geleerd wat de oorzaken zijn UnknownHostException, hoe u dit kunt voorkomen en hoe u ermee om moet gaan.

Zoals altijd is de code beschikbaar op Github.