java.net.UnknownHostException: Nevažeće ime hosta za poslužitelj

1. Uvod

U ovom uputstvu saznat ćemo uzrok UnknownHostException s primjerom. Također ćemo razgovarati o mogućim načinima sprječavanja i rješavanja iznimke.

2. Kada se baca izuzetak?

UnknownHostException označava da se IP adresa imena hosta nije mogla utvrditi.To se može dogoditi zbog pogreške u upisu u ime hosta:

Niz imena hosta = "// locaihost"; URL url = novi URL (naziv hosta); HttpURLConnection con = (HttpURLConnection) url.openConnection (); con.getResponseCode ();

Gornji kod baca UnknownHostException od pogrešno napisane locaihost ne upućuje ni na jednu IP adresu.

Još jedan mogući razlog za UnknownHostException je kašnjenje širenja DNS-a ili pogrešna konfiguracija DNS-a.

Može proći i do 48 sati dok se novi DNS unos ne proširi po cijelom Internetu.

3. Kako to spriječiti?

Spriječiti da se iznimka uopće dogodi bolje je nego riješiti je kasnije. Nekoliko savjeta za sprečavanje iznimke su:

  1. Dvaput provjerite ime hosta: Provjerite nema li pogreške u kucanju i izrežite sve razmake.
  2. Provjerite postavke DNS-a sustava: Provjerite je li DNS poslužitelj otvoren i dostupan, a ako je ime hosta novo, pričekajte da DNS poslužitelj sustigne.

4. Kako to riješiti?

UnknownHostException proteže se IOException, što je provjerena iznimka. Slično bilo kojoj drugoj provjerenoj iznimci, moramo je ili baciti ili okružiti znakom pokušaj uhvatiti blok.

Obradimo iznimku u našem primjeru:

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

Dobra je praksa kad vezu prekidate UnknownHostException javlja se. Puno rastrošnih otvorenih veza može uzrokovati da aplikacija ostane bez memorije.

5. Zaključak

U ovom smo članku saznali što uzrokuje UnknownHostException, kako to spriječiti i kako postupati.

Kao i uvijek, kôd je dostupan na Githubu.