java.net.UnknownHostException: Ungültiger Hostname für Server

1. Einleitung

In diesem Tutorial lernen wir die Ursache von UnknownHostException anhand eines Beispiels kennen. Wir werden auch mögliche Möglichkeiten zur Verhinderung und Behandlung der Ausnahme diskutieren.

2. Wann wird die Ausnahme ausgelöst?

UnknownHostException gibt an, dass die IP-Adresse eines Hostnamens nicht ermittelt werden konnte. Dies kann aufgrund eines Tippfehlers im Hostnamen passieren:

String hostname = "//locaihost"; URL url = new URL(hostname); HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.getResponseCode();

Der obige Code löst eine UnknownHostException aus, da der falsch geschriebene locaihost nicht auf IP-Adressen verweist .

Ein weiterer möglicher Grund für die UnknownHostException ist die Verzögerung der DNS-Weitergabe oder die Fehlkonfiguration des DNS.

Es kann bis zu 48 Stunden dauern, bis ein neuer DNS-Eintrag im gesamten Internet verbreitet wird.

3. Wie kann man das verhindern?

Es ist besser, zu verhindern, dass die Ausnahme überhaupt auftritt, als sie anschließend zu behandeln. Einige Tipps zur Vermeidung der Ausnahme sind:

  1. Überprüfen Sie den Hostnamen noch einmal: Stellen Sie sicher, dass kein Tippfehler vorliegt, und schneiden Sie alle Leerzeichen ab.
  2. Überprüfen Sie die DNS-Einstellungen des Systems: Stellen Sie sicher, dass der DNS-Server aktiv und erreichbar ist. Wenn der Hostname neu ist, warten Sie, bis der DNS-Server aufholt.

4. Wie gehe ich damit um?

UnknownHostException erweitert IOException , eine überprüfte Ausnahme. Ähnlich wie bei jeder anderen aktivierten Ausnahme müssen wir sie entweder auslösen oder mit einem Try-Catch- Block umgeben.

Lassen Sie uns die Ausnahme in unserem Beispiel behandeln:

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

Es wird empfohlen, die Verbindung zu schließen, wenn eine UnknownHostException auftritt. Viele verschwenderische offene Verbindungen können dazu führen, dass der Anwendung der Speicherplatz ausgeht.

5. Schlussfolgerung

In diesem Artikel haben wir erfahren, was UnknownHostException verursacht , wie es verhindert und wie damit umgegangen wird.

Wie immer ist der Code auf Github verfügbar.