日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

Java UnknownHostException –服务器的无效主机名–如何解决?

發(fā)布時(shí)間:2023/12/3 java 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java UnknownHostException –服务器的无效主机名–如何解决? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

An UnknownHostException的快速指南,如果在為遠(yuǎn)程方法調(diào)用創(chuàng)建到遠(yuǎn)程主機(jī)的連接時(shí)發(fā)生java.net.UnknownHostException,則會(huì)拋出該快速指南。 UnknownHostException的預(yù)防方法。

1.簡(jiǎn)介

在本教程中,我們將學(xué)習(xí)什么是UnknownHostException以及產(chǎn)生它的原因 。 并且學(xué)習(xí)如何預(yù)防 。 UnknownHostException是一個(gè)常見的異常,它將顯示防止該異常的最佳方法。

層次結(jié)構(gòu):

java.lang.Object java.lang.Throwable java.lang.Exception java.io.IOException java.rmi.RemoteException java.rmi.UnknownHostException

2.何時(shí)引發(fā)異常?

當(dāng)且僅當(dāng)域名存在問題或鍵入錯(cuò)誤時(shí),才會(huì)引發(fā)UnknownHostException 。 并且還指示無法確定網(wǎng)站的IP地址。

package com.java.w3schools.blog.exceptions; import java.io.IOException; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; public class UnknownHostExceptionException { public static void main(String[] args) throws IOException { String hostname = " http://javaprogram.comm " ; URL url = null ; try { url = new URL(hostname); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.getResponseCode(); } }

輸出:

Exception in thread "main" Exception in thread java.net.UnknownHostException: javaprogram.comm at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java: 220 ) at java.base/java.net.Socket.connect(Socket.java: 591 ) at java.base/java.net.Socket.connect(Socket.java: 540 ) at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java: 182 ) at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java: 474 ) at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java: 569 ) at java.base/sun.net.www.http.HttpClient.<init>(HttpClient.java: 242 ) at java.base/sun.net.www.http.HttpClient.New(HttpClient.java: 341 ) at java.base/sun.net.www.http.HttpClient.New(HttpClient.java: 362 ) at java.base/sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java: 1242 ) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java: 1181 ) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java: 1075 ) at java.base/sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java: 1009 ) at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java: 1581 ) at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java: 1509 ) at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java: 527 ) at com.java.w3schools.blog.exceptions.UnknownHostExceptionException.main(UnknownHostExceptionException.java: 21 )

在上面的程序中錯(cuò)誤地添加了comm而不是com。 因此,它產(chǎn)生了錯(cuò)誤。

3.如何預(yù)防?

預(yù)防勝于治療。 始終將預(yù)防放在首位,而不是面對(duì)問題。

以下是預(yù)防的重要提示。

仔細(xì)檢查主機(jī)名 –檢查域名的拼寫并修剪多余的空格是很好的。

檢查DNS設(shè)置 –在運(yùn)行應(yīng)用程序之前,使用計(jì)算機(jī)上的ping hostname命令確保DNS服務(wù)器已啟動(dòng)并正在運(yùn)行。 如果主機(jī)名是新的,則需要等待一段時(shí)間才能訪問DNS服務(wù)器。

4.如何處理?

UnknownHostException擴(kuò)展了IOException ,這是一個(gè)已檢查的異常。 類似于任何其他檢查的異常,我們必須將其拋出或用try-catch塊將其包圍。

讓我們?cè)谑纠刑幚懋惓?#xff1a;

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

Thread.sleep(5000) –睡眠一段時(shí)間,然后重試。 如果存在網(wǎng)絡(luò)問題,這應(yīng)該可以解決該問題。 代替睡眠不要使用interrupted()方法。

發(fā)生UnknownHostException時(shí),關(guān)閉連接是一個(gè)好習(xí)慣。 許多浪費(fèi)的打開連接會(huì)導(dǎo)致(內(nèi)存泄漏)應(yīng)用程序用盡內(nèi)存。

5.結(jié)論

在本文中,我們已經(jīng)看到了什么是UnknownHostException以及如何產(chǎn)生和處理它? 并且還看到了預(yù)防這種情況的最佳方法。

GitHub示例代碼

API

翻譯自: https://www.javacodegeeks.com/2020/04/java-unknownhostexception-invalid-hostname-for-server-how-to-fix-it.html

總結(jié)

以上是生活随笔為你收集整理的Java UnknownHostException –服务器的无效主机名–如何解决?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。