java.net.UnknownHostException: Ugyldig vertsnavn for server
1. Introduksjon
I denne opplæringen lærer vi årsaken til UnknownHostException med et eksempel. Vi vil også diskutere mulige måter å forebygge og håndtere unntaket på.
2. Når kastes unntaket?
UnknownHostException indikerer at IP-adressen til vertsnavnet ikke kunne bestemmes.Det kan skje på grunn av en skrivefeil i vertsnavnet:
String vertsnavn = "// locaihost"; URL url = ny URL (vertsnavn); HttpURLConnection con = (HttpURLConnection) url.openConnection (); con.getResponseCode ();
Ovennevnte kode kaster en UnknownHostException siden feilstavet locaihost peker ikke på noen IP-adresser.
En annen mulig årsak til UnknownHostException er DNS-forplantningsforsinkelse eller DNS-feilkonfigurasjon.
Det kan ta opptil 48 timer før en ny DNS-oppføring forplantes over hele Internett.
3. Hvordan forhindre det?
Å forhindre at unntaket i utgangspunktet oppstår er bedre enn å håndtere det etterpå. Noen få tips for å forhindre unntaket er:
- Dobbeltsjekk vertsnavnet: Forsikre deg om at det ikke er noen skrivefeil, og trimm alle mellomrommene.
- Sjekk systemets DNS-innstillinger: Forsikre deg om at DNS-serveren er tilgjengelig og tilgjengelig, og hvis vertsnavnet er nytt, vent på at DNS-serveren tar igjen.
4. Hvordan håndtere det?
UnknownHostException strekker IO Unntak, som er et sjekket unntak. I likhet med alle andre kontrollerte unntak, må vi enten kaste den eller omgi den med en prøvefangst blokkere.
La oss håndtere unntaket i vårt eksempel:
prøv {con.getResponseCode (); } fange (UnknownHostException e) {con.disconnect (); }
Det er en god praksis å lukke forbindelsen når UnknownHostException inntreffer. Mange bortkastede åpne forbindelser kan føre til at applikasjonen går tom for minne.
5. Konklusjon
I denne artikkelen lærte vi hva som forårsaker det UnknownHostException, hvordan du kan forhindre det, og hvordan du skal håndtere det.
Som alltid er koden tilgjengelig på Github.