java.net.UnknownHostException: neplatný názov hostiteľa pre server

1. Úvod

V tomto výučbe sa dozvieme príčinu UnknownHostException s príkladom. Budeme tiež diskutovať o možných spôsoboch prevencie a riešenia výnimky.

2. Kedy sa hodí výnimka?

UnknownHostException označuje, že nebolo možné určiť IP adresu názvu hostiteľa.Môže sa to stať kvôli preklepu v názve hostiteľa:

Reťazec hostname = "// locaihost"; URL URL = nová URL (názov hostiteľa); HttpURLConnection con = (HttpURLConnection) url.openConnection (); con.getResponseCode ();

Vyššie uvedený kód hodí UnknownHostException od preklepu locaihost neukazuje na žiadne adresy IP.

Ďalším možným dôvodom pre UnknownHostException je oneskorenie šírenia DNS alebo nesprávna konfigurácia DNS.

Môže trvať až 48 hodín, kým sa nový záznam DNS rozšíri po celom internete.

3. Ako tomu zabrániť?

Zabrániť tomu, aby sa výnimka vyskytla na prvom mieste, je lepšie ako sa s ňou neskôr zaobchádzať. Niekoľko tipov, ako zabrániť výnimke, je:

  1. Skontrolujte meno hostiteľa: Uistite sa, že nejde o preklep, a orezajte všetky medzery.
  2. Skontrolujte nastavenia DNS systému: Uistite sa, že je server DNS aktívny a dosiahnuteľný. Ak je názov hostiteľa nový, počkajte, kým ho server DNS dobehne.

4. Ako to zvládnuť?

UnknownHostException predlžuje Výnimka IO, čo je zaškrtnutá výnimka. Podobne ako v prípade iných kontrolovaných výnimiek, musíme ich buď vyhodiť, alebo obklopiť znakom Skús chytiť blokovať.

Urobme výnimku v našom príklade:

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

Osvedčeným postupom je ukončiť spojenie, keď UnknownHostException vyskytuje. Mnoho zbytočných otvorených pripojení môže spôsobiť, že aplikácii dôjde pamäť.

5. Záver

V tomto článku sme sa dozvedeli, čo spôsobuje UnknownHostException, ako tomu zabrániť a ako s ním zaobchádzať.

Ako vždy, kód je k dispozícii na stránkach Github.


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