Java異常和Internet尋址_第1頁
Java異常和Internet尋址_第2頁
Java異常和Internet尋址_第3頁
Java異常和Internet尋址_第4頁
Java異常和Internet尋址_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、2022年3月6日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼1第第2講講主要內(nèi)容異常處理-補充Java尋址-第6章 2022年3月6日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼2補充補充 異常處理異常處理異常及其好處異常及其好處 異常是在程序運行時,破壞了程序正常執(zhí)行流程的事件。因此,異常又叫異常事件。 異常既不是程序的語法錯誤,也不是程序的邏輯錯誤。異常既可能是超出程序員控制之外的環(huán)境因素,如要讀取的文件不存在,網(wǎng)絡(luò)連接不可用等;也可能是程序自身運行中出現(xiàn)的異常,如引用未賦值,除法運算時除數(shù)為0,訪問數(shù)組下標越界等;同時也可能是Java虛擬機運行時出現(xiàn)的異常,如虛擬機的內(nèi)部錯誤,堆棧溢出,內(nèi)存越界等

2、。 2022年3月6日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼3補充補充 異常處理異常處理異常及其好處異常及其好處 異常處理的基本思想是異常檢測與異常處理分開。異常檢測能夠告知異常發(fā)生的位置和異常類型。發(fā)生異常的方法可以處理異常,也可沿調(diào)用堆棧向上拋出,交由上層調(diào)用方法處理,增加了處理的靈活性。 2022年3月6日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼4補充補充 異常處理異常處理異常三大好處異常三大好處 好處一:將異常處理代碼與正常邏輯代碼分開,增加了程序的易讀性。正常讀取文件的常規(guī)邏輯代碼 readFile open the file;determine its size;allocate t

3、hat much memory;read the file into memory;close the file;每一步都可能發(fā)生異常情況 readFile open the file;發(fā)生文件不能打開異常;determine its size;不能確定文件大小;allocate that much memory;沒有足夠內(nèi)存分配;read the file into memory;讀文件失??;close the file;文件不能被關(guān)閉;2022年3月6日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼5補充補充 異常處理異常處理交由調(diào)用方法處理,要向調(diào)用方法返回異常情況類型 ;或自己處理 error

4、CodeType readFile initialize errorCode = 0; open the file; if (theFileIsOpen) determine the length of the file; if (gotTheFileLength) allocate that much memory; if (gotEnoughMemory) read the file into memory; if (readFailed) errorCode = -1; else errorCode = -2; else errorCode = -3; close the file; i

5、f (theFileDidntClose & errorCode = 0) errorCode = -4; else errorCode = errorCode and -4; else errorCode = -5; return errorCode;異常處理機制可以將正常處理代碼與異常處理代碼分開,增加了程序的可讀性。 readFile try open the file; determine its size; allocate that much memory; read the file into memory; close the file; catch (fileOpen

6、Failed) doSomething; catch (sizeDeterminationFailed) doSomething; catch (memoryAllocationFailed) doSomething; catch (readFailed) doSomething; catch (fileCloseFailed) doSomething; 2022年3月6日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼6補充補充 異常處理異常處理異常三大好處異常三大好處 好處二:異常處理更加靈活,代碼簡潔清晰。假設(shè)上述ReadFile方法由method3調(diào)用,method3由method2調(diào)用,met

7、hod2由method1調(diào)用。偽代碼如下:method1 call method2;method2 call method3;method3 call readFile;沒有異常處理機制的偽代碼如下: method1 errorCodeType error; error = call method2; if (error) doErrorProcessing; else proceed;errorCodeType method2 errorCodeType error; error = call method3; if (error) return error; else proceed;er

8、rorCodeType method3 errorCodeType error; error = call readFile; if (error) return error; else proceed;2022年3月6日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼7補充補充 異常處理異常處理異常三大好處異常三大好處 好處二:異常處理更加靈活,代碼簡潔清晰。假設(shè)上述ReadFile方法由method3調(diào)用,method3由method2調(diào)用,method2由method1調(diào)用。偽代碼如下:method1 call method2;method2 call method3;method3 call r

9、eadFile;具有異常處理機制的偽代碼如下:method1 try call method2; catch (exception e) doErrorProcessing; method2 throws exception call method3;method3 throws exception call readFile;2022年3月6日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼8補充補充 異常處理異常處理好處三:將異常組織成類層次結(jié)構(gòu),既有利于突出異常之間的聯(lián)系,也有利于異常的處理。在進行輸入輸出時,IOException是各種輸入輸出異常的祖先類,代表一般異常情況,其子孫類則代表具體異

10、常情況。一個方法既可選擇捕獲某種具體異常對象,也可選擇捕獲一般異常對象,還可以先捕獲幾種具體異常對象,剩下的按照一般異常對象捕獲。 2022年3月6日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼9Java中的異常中的異常 Java異常分類異常分類 見word文檔2022年3月6日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼10Java中的異常中的異常 自定義異常自定義異常 見word文檔2022年3月6日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼11Java中的異常中的異常 Java中的異常處理機制中的異常處理機制 捕獲并處理異常 1 幸運的是,在絕大多數(shù)情況下,只要知道所調(diào)用的方法是否拋出了異常即可,查查A

11、PI文檔即可。 2用try塊將其包圍起來,每個try代碼塊可以伴隨一個或多個catch語句,用于處理相應(yīng)try代碼塊中所生成的異常事件。 2022年3月6日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼12Java中的異常中的異常 Java中的異常處理機制中的異常處理機制 捕獲并處理異常 捕獲并處理異常的完整程序結(jié)構(gòu)如下:try 會產(chǎn)生異常的代碼 catch (ExceptionType1 name) catch (ExceptionType2 name) finally 2022年3月6日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼13Java中的異常中的異常 Java中的異常處理機制中的異常處理機制 直

12、接拋出異常 如果一個方法不想捕獲并處理在方法體內(nèi)所產(chǎn)生的異常對象,可以使用throws關(guān)鍵詞在方法的聲明語句中拋出這些類型的異常,交由該方法的調(diào)用方法處理。 2022年3月6日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼14Java中的異常中的異常 Java中的異常處理機制中的異常處理機制 直接拋出異常 如果一個方法不想捕獲并處理在方法體內(nèi)所產(chǎn)生的異常對象,可以使用throws關(guān)鍵詞在方法的聲明語句中拋出這些類型的異常,交由該方法的調(diào)用方法處理。 2022年3月6日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼15Java中的異常中的異常 Java中的異常處理機制中的異常處理機制 捕獲處理并拋出異常 前2種

13、方法的結(jié)合,既捕獲該異常進行處理,同時又沿調(diào)用堆棧拋出異常對象。 2022年3月6日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼16第第6章章 Internet尋址尋址局域網(wǎng)地址身份證號別名:硬件地址、NIC地址和MAC(Media Access Control)地址 聯(lián)網(wǎng)機器在同一個LAN或WAN內(nèi)是依靠物理地址相互通信的,IP數(shù)據(jù)包必須封裝成幀才能通過物理網(wǎng)絡(luò),因此,物理地址又稱為數(shù)據(jù)鏈路層地址 。2022年3月6日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼17IPV4地址通信地址別名:邏輯地址 IPv4地址長度為32位二進制數(shù),常用“點分十進制”表示:地址劃分為4個字節(jié)部分,每部分用0255之間的

14、一個十進制數(shù)表示,各部分之間用小數(shù)點分隔。 網(wǎng)絡(luò)標識+主機標識分類編址和無分類編址兩種 。2022年3月6日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼18分類地址 分為A、B、C、D和E共5類,各類地址的高位互不相同。 見表。特殊地址和地址塊 。單播、廣播和多播地址 。劃分子網(wǎng) 。建立超網(wǎng) 2022年3月6日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼19無分類地址 將整個IPv4地址空間劃分為不同大小的地址段,一個機構(gòu)可以申請到適合自己需要的地址段。 無分類地址采用斜線記法,形如A.B.C.D/n。n表示該塊中的前n位是相同的。 2022年3月6日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼20IPV6地址

15、 長度為128位二進制位 。一個IPv6的地址由8個地址節(jié)組成,每節(jié)包含16個地址位,以4個十六進制數(shù)書寫,節(jié)與節(jié)之間用冒號分隔,例如:FAB0:BC28:4567:1230:FAAC:B123:8971:5555。 為了簡化包含0 位地址的書寫,指定了一個特殊的語法來壓縮0 。使用“:”符號指示有多個0值的16位組。 2022年3月6日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼21域名系統(tǒng) 層次的樹狀結(jié)構(gòu) 。頂級域名由ICANN(Internet Corporation for Assigned Names and Numbers)機構(gòu)管理,同時它還管理個別頂級域名下的域名注冊管理工作。其它頂級

16、域名下的域名管理工作由ICANN授權(quán)給其它機構(gòu)管理,如cn域名下的域名注冊管理機構(gòu)是中國互聯(lián)網(wǎng)中心(CNNIC)。 2022年3月6日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼22域名解析 域名服務(wù)器的組織結(jié)構(gòu)也是層狀結(jié)構(gòu)。最上面是根服務(wù)器,有13個,實際上,每個根服務(wù)器都存在許多鏡像服務(wù)器,用來提高因特網(wǎng)的域名解析效率。 一個域名服務(wù)器所負責(zé)的范圍稱為一個區(qū),它保存這個區(qū)的所有節(jié)點的域名信息。區(qū)可以是一個域,也可以只包含這個域的部分子域,而把另外的子域委托給其它服務(wù)器,保留對這些服務(wù)器的引用關(guān)系 。2022年3月6日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼23域名解析 根服務(wù)器保存?zhèn)€別頂級域下的所

17、有信息,保存對其它頂級域名服務(wù)器的引用信息。每一個標準的DNS服務(wù)器都有一個cache文件,稱為根服務(wù)器列表,包括了因特網(wǎng)上的根服務(wù)器名稱和對應(yīng)的IP地址。這個文件的下載地址是ftp:/ Java網(wǎng)絡(luò)編程 主講:劉淼24域名解析 遞歸解析。迭代解析。解析過程。2022年3月6日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼25用用Java進行進行Internet尋址尋址J.InetAddress類 .NetworkInterface類類參考API文檔資料2022年3月6日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼26程序程序1:用:用InetAddress類確定本地主機地址類確定本地主機地址import

18、.*;public class LocalHostDemo public static void main(String args) System.out.println(Looking up local host); try / Get the local host InetAddress localAddress = InetAddress.getLocalHost(); System.out.println(IP address : + localAddress.getHostAddress(); catch (UnknownHostException uhe) System.out.println

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論