Java UnknownHostException –服务器的无效主机名–如何解决?
An UnknownHostException的快速指南,如果在為遠程方法調用創建到遠程主機的連接時發生java.net.UnknownHostException,則會拋出該快速指南。 UnknownHostException的預防方法。
1.簡介
在本教程中,我們將學習什么是UnknownHostException以及產生它的原因 。 并且學習如何預防 。 UnknownHostException是一個常見的異常,它將顯示防止該異常的最佳方法。
層次結構:
java.lang.Object java.lang.Throwable java.lang.Exception java.io.IOException java.rmi.RemoteException java.rmi.UnknownHostException2.何時引發異常?
當且僅當域名存在問題或鍵入錯誤時,才會引發UnknownHostException 。 并且還指示無法確定網站的IP地址。
輸出:
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 )在上面的程序中錯誤地添加了comm而不是com。 因此,它產生了錯誤。
3.如何預防?
預防勝于治療。 始終將預防放在首位,而不是面對問題。
以下是預防的重要提示。
仔細檢查主機名 –檢查域名的拼寫并修剪多余的空格是很好的。
檢查DNS設置 –在運行應用程序之前,使用計算機上的ping hostname命令確保DNS服務器已啟動并正在運行。 如果主機名是新的,則需要等待一段時間才能訪問DNS服務器。
4.如何處理?
UnknownHostException擴展了IOException ,這是一個已檢查的異常。 類似于任何其他檢查的異常,我們必須將其拋出或用try-catch塊將其包圍。
讓我們在示例中處理異常:
try { con.getResponseCode(); } catch (UnknownHostException e) { con.disconnect(); }Thread.sleep(5000) –睡眠一段時間,然后重試。 如果存在網絡問題,這應該可以解決該問題。 代替睡眠不要使用interrupted()方法。
發生UnknownHostException時,關閉連接是一個好習慣。 許多浪費的打開連接會導致(內存泄漏)應用程序用盡內存。
5.結論
在本文中,我們已經看到了什么是UnknownHostException以及如何產生和處理它? 并且還看到了預防這種情況的最佳方法。
GitHub示例代碼
API
翻譯自: https://www.javacodegeeks.com/2020/04/java-unknownhostexception-invalid-hostname-for-server-how-to-fix-it.html
總結
以上是生活随笔為你收集整理的Java UnknownHostException –服务器的无效主机名–如何解决?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 10磅是多少斤 磅和斤的换算公式是什么
- 下一篇: mongodb连接java_如何从Jav