国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Java語言中異常的深入探析

2014-07-24 18:59:27錢明珠汪小寶
電腦知識與技術 2014年15期
關鍵詞:異常

錢明珠++汪小寶

摘要:Java語言是一種易學易用的網絡設計語言,它有簡單易學、面向對象、動態(tài)性、解釋執(zhí)行性、多線程性、安全性和健壯性等特點。在眾多的特點中,筆者重點研究Java的健壯性。如何增強程序的健壯性?相當其它語言來說,Java語言摒棄了指針的概念,更新了很多語言的不足,同時引進了異常處理的機制,讓Java編寫出來的程序具有更強的處理和執(zhí)行能力,使程序更加健壯。

關鍵詞:異常;異常處理機制;異常分類;健壯性

中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2014)15-3520-02

Abstract: Java language is a language easy to learn web design, it has easy to learn, object-oriented, dynamic, interpreted, multi-threaded, security and robustness characteristics. Among the many features, the author focuses on Java's robustness. How to enhance the robustness of the program? It is quite another language, Java language to abandon the concept of pointers, updating a lot less than the language, while the introduction of a mechanism for exception handling, let out a program written in Java has more processing and execution capabilities to make the program more robust.

Key words: exception; exception handling mechanism; abnormal classification; robustness

隨著計算機行業(yè)不斷發(fā)展,各類計算機語言的功能都比之前更加強大和完善,學生學起來也更加容易。但是,大多數語言都存在一些漏洞,眾所周知,捕獲漏洞最理想的時機是在編譯期間,即程序在運行之前找到錯誤并解決。然而在實際的程序設計過程中,并不是所有的錯誤都能在編譯期間被檢測發(fā)現。雖然其它語言也提供了異常處理機制,但Java提供了一種更加靈活和簡便的異常處理機制。

1 Java語言中異常的概念

異常的解釋有很多種,如鄭阿奇編寫的《Java實用教程》是這樣詮釋的。異常就是以對象的方式表示的一個或一類錯誤,該異常對象不僅封裝了錯誤的信息,還包含了錯誤發(fā)生時的“上下文”信息[1]。還有張興科編寫的《Java程序設計項目教程》中異常定義是在程序執(zhí)行過程中,能夠使程序正常運行中斷的條件稱之為異常[2]。還有很其它的解釋筆者就不一一介紹。異常簡單來說就是在程序執(zhí)行期間,為了規(guī)避一些意外事件的發(fā)生,而編寫一些額外的代碼來處理它們,使程序能繼續(xù)運行下去,而不至于程序中斷,使整個運行癱瘓,Java把這些意外的事件稱之為異常。

2 Java語言中異常的處理機制

一般來說,Java程序在運行中如果發(fā)生異常,不進行捕獲,程序就會終止運行。Java提供了一套非常靈活和簡單的異常處理機制,由try-catch-finall結構來處理。

1) try語句塊

捕獲異常的第一步是用try{…}選定捕獲異常的范圍,由try所限定的代碼塊中的語句在執(zhí)行過程中可能會生成異常對象并拋棄。它后面的catch語句塊要分別對這些異常做相應的處理。try語句塊后通常跟0個或多個catch語句塊,還可以至多一個的finally語句塊。

2) catch語句塊

每個catch語句塊聲明其能處理的一種特定類型的異常并提供處理的方法。當異常發(fā)生時,程序會中止當前的流程,根據獲取異常的類型去執(zhí)行相應的catch語句塊。在catch中聲明的異常對象(catch(Exception e))封裝了異常事件發(fā)生的信息,在catch語句塊中可以使用這個對象的一些方法來獲取這些信息。當多個catch語句塊存在時,子類異常對象要放在父異常對象之前.如

catch(subException1 e1){ }

catch(subException2 e2){ }

catch(Exception1 e3){ }

3) finally語句塊

捕獲例外的最后一步是通過finally語句為例外處理提供一個統(tǒng)一的出口,使得在控制流轉到程序的其它部分以前,能夠對程序的狀態(tài)作統(tǒng)一的管理。不論在try代碼塊中是否發(fā)生了異常事件,finally塊中的語句都會被執(zhí)行。

3 Java語言中異常的分類

Java語言把異常分為兩類:必須檢測異常(checked exceptions)和非檢測異常(unchecked exceptions)。很多學習異常的同學,總喜歡把這兩種異?;煜磺?。所謂 必須檢測異常就是在編譯程序時,某句代碼編譯無法通過,只有對它做異常處理,才能通過編譯器的編譯,這種異常就是必須檢測異常。而非檢測異常則是程序在編譯時不會報告錯誤,但程序可能存在潛在風險。為了讓學生更好的認識和掌握這兩類異常,筆者將進一步解釋。

3.1 必須檢測異常

當聲明一個方法拋出異常時,該方法可能會拋出聲明的那些異常,從而在程序中對這些異常加以注意和處理,如果直接對整個方法進行異常處理。如

type method_name(parameter_list)throws exception_list{

//方法體

}

當該方法被調用時就會產生編譯時錯誤,此時產生的就是檢測性異常。

3.2 非檢測異常

如果不是直接對整個方法進行異常處理,而是使用try-catch-finall結構來處理。如

type method_name(parameter_list) {

try{

方法體

} catch(subException1 e1){ }

catch(subException2 e2){ }

catch(Exception1 e3){ }

}

當該方法被調用時就不會產生編譯時錯誤,此時產生的就是非檢測性異常。

3.3 兩種異常的轉換

現在以對三角形合法性判斷為例,定義異常和實現檢測性和非檢測性的互換操作。

首先自定義定義三角形異常類

然后應用該類定義一個判斷合法三角形的方法,并拋出異常對象時,當在主方法中調用該方法時就出現了編譯時錯誤。這就是檢測性異常的產生。

如果做下面改動,結果就會變成非檢測性異常。

從上面例子可以直觀了解這兩種異常的區(qū)別和實現過程,因此在做程序時,完全可以由設計者根據具體的需要,來控制異常的類型。使編程變得更加靈活,方便。

4 小結

作為程序設計者來說,不光是能設計出用戶需要的功能,同時也有讓設計的程序更加的健壯,異常的學習可以讓程序設計者在這方面做到游刃有余。

參考文獻:

[1] 鄭阿奇. Java實用教程[M].2版.北京:電子工業(yè)出版社, 2013:126-133.

[2] 張興科.Java程序設計項目教程[M].北京:中國人民大學出版社, 2010:97-102.

[3] 魏先民.Java程序設計實例教程[M].北京:中國水利電力出版社, 2009:143-147.endprint

猜你喜歡
異常
煤礦提升機安全狀態(tài)異常概述
淺談高中化學實驗不尋常的成因和利用
東方教育(2016年10期)2017-01-16 21:15:18
發(fā)電機負序電流異常增大的原因分析
綠色科技(2016年20期)2016-12-27 18:08:35
電力計量裝置異常的監(jiān)測方法及處理對策
電離層異常變化對短波通信的影響分析
紅外成像技術在變電設備檢測中的實踐與應用
嵌入式系統(tǒng)課程“中斷、異常與事件”教學實踐及啟示
計算機教育(2016年7期)2016-11-10 08:31:34
探討糖尿病合并促甲狀腺激素、甲狀腺激素異常患者的臨床診斷治療
關于氣相色譜分析氫氣異常的解決方案
科技視界(2016年24期)2016-10-11 18:58:00
汽車雜志(2016年8期)2016-09-01 16:54:16
乐清市| 青浦区| 阿尔山市| 田阳县| 杭锦旗| 昌邑市| 宁海县| 个旧市| 东宁县| 高平市| 贵港市| 沧州市| 宁远县| 武清区| 长沙县| 遂宁市| 雅安市| 炎陵县| 乳山市| 雅江县| 天全县| 瑞丽市| 壤塘县| 武定县| 钟山县| 古田县| 栾川县| 宜阳县| 阿巴嘎旗| 克拉玛依市| 尉犁县| 类乌齐县| 宁陵县| 桐庐县| 拉萨市| 武川县| 凌云县| 思南县| 德江县| 大荔县| 华池县|