java.net.UnknownHostException: Érvénytelen hosztnév a kiszolgálóhoz

1. Bemutatkozás

Ebben az oktatóanyagban megtudhatjuk az okát UnknownHostException példával. Megbeszéljük a kivétel megelőzésének és kezelésének lehetséges módjait is.

2. Mikor dobják el a kivételt?

UnknownHostException azt jelzi, hogy a gazdagép IP-címét nem sikerült meghatározni.Ez a gépnév elírási hibája miatt történhet:

String hostname = "// locaihost"; URL url = új URL (gazdagépnév); HttpURLConnection con = (HttpURLConnection) url.openConnection (); con.getResponseCode ();

A fenti kód egy UnknownHostException mivel a hibásan elírt locaihost nem mutat semmilyen IP-címet.

Egy másik lehetséges oka annak UnknownHostException a DNS terjedésének késleltetése vagy a DNS hibás konfigurálása.

Akár 48 órába is beletelhet egy új DNS-bejegyzés terjedése az interneten.

3. Hogyan lehet megakadályozni?

A kivétel első előfordulásának megakadályozása jobb, mint későbbi kezelése. Néhány tipp a kivétel megelőzésére:

  1. Ellenőrizze még egyszer a gazdagép nevét: Győződjön meg arról, hogy nincs elírás, és vágja le az összes szóközt.
  2. Ellenőrizze a rendszer DNS-beállításait: Győződjön meg arról, hogy a DNS-kiszolgáló elérhető és elérhető, és ha a gazdagépnév új, várja meg, amíg a DNS-kiszolgáló felzárkózik.

4. Hogyan kell kezelni?

UnknownHostException kiterjed IOException, ami ellenőrzött kivétel. A többi bejelölt kivételhez hasonlóan vagy dobnunk kell, vagy körbevennünk a-val próbáld elkapni Blokk.

Kezeljük a kivételt a példánkban:

próbáld ki a {con.getResponseCode (); } catch (UnknownHostException e) {con.disconnect (); }

Jó gyakorlat, amikor lezárjuk a kapcsolatot UnknownHostException bekövetkezik. A sok pazarló nyitott kapcsolat miatt az alkalmazás memóriája kifogyhat.

5. Következtetés

Ebben a cikkben megtudtuk, mi okozza UnknownHostException, hogyan lehet megakadályozni és hogyan kell kezelni.

Mint mindig, a kód elérhető a Githubon.