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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

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

發布時間:2023/12/3 java 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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.UnknownHostException

2.何時引發異常?

當且僅當域名存在問題或鍵入錯誤時,才會引發UnknownHostException 。 并且還指示無法確定網站的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 )

在上面的程序中錯誤地添加了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 –服务器的无效主机名–如何解决?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。