- 相關(guān)推薦
Java語言中的異常處理機(jī)制
導(dǎo)語:為了加強(qiáng)程序的健壯性、流暢性、穩(wěn)定性,就需要考慮有可能發(fā)生的異常,并進(jìn)行相應(yīng)的處理。下面就由小編為大家介紹一下Java語言中的異常處理機(jī)制,歡迎大家閱讀!
1 概述
在應(yīng)用程序運(yùn)行的過程中,經(jīng)常會(huì)出現(xiàn)這樣一些現(xiàn)象:用戶不按照要求輸入、需要進(jìn)行處理的文件丟失、分母為零、數(shù)組下標(biāo)超出預(yù)定范圍、網(wǎng)絡(luò)中斷等,我們把這種現(xiàn)象稱為異常。由于異常情況總是難免的,所以一個(gè)好的應(yīng)用程序不僅要滿足用戶的基本需求,還要具備處理有可能出現(xiàn)的異常情況的能力,即程序必須具備較強(qiáng)的容錯(cuò)能力,把這種對(duì)異常進(jìn)行處理的機(jī)制稱為異常處理。對(duì)異常處理有兩種常見方法:計(jì)算機(jī)系統(tǒng)遇到錯(cuò)誤,給出出錯(cuò)信息并結(jié)束正在運(yùn)行的程序;由程序員在程序中加入異常處理的功能。早期的程序設(shè)計(jì)語言沒有提供專門進(jìn)行異常處理的功能,程序員在編寫程序的過程中,進(jìn)行處理異常的代碼往往和正常的代碼混雜在一起,導(dǎo)致程序的可維護(hù)性和可讀性下降。Java語言采取了異常處理機(jī)制,其方式為“拋出-捕獲”,一個(gè)異常一旦產(chǎn)生,Java語言采取相應(yīng)的機(jī)制來處理它,避免出現(xiàn)死循環(huán)、死機(jī)以及其他更大的危害,盡可能預(yù)防錯(cuò)誤代碼帶來的不可預(yù)期的后果,整個(gè)程序的安全性得到了極大的提高。
2 Java語言中的異常概述
Java語言提供了功能強(qiáng)大的異常處理機(jī)制,將所有處理異常的代碼集中放置,以保證正常功能代碼和處理異常的代碼分開。在Java程序設(shè)計(jì)語言中,采用了大量的異常類來進(jìn)行處理,這些異常類可分為兩大類:Java.lang.Exception和java.lang.Error。Exception類解決由程序本身及環(huán)境所產(chǎn)生的異常。而Error類則處理較少發(fā)生的內(nèi)部系統(tǒng)錯(cuò)誤。Exception類異?梢圆东@并進(jìn)行相應(yīng)處理,而Error類異常,則是由用戶按照系統(tǒng)提示關(guān)閉程序。常見的異常類如下表所示:
在以上常見的Java異常類中,每個(gè)異常類反映一類異常錯(cuò)誤,其中包含了異常錯(cuò)誤信息和處理方法。當(dāng)程序運(yùn)行過程中,出現(xiàn)一種異,F(xiàn)象,產(chǎn)生一個(gè)相應(yīng)的異常類對(duì)象,再由相應(yīng)的異常類進(jìn)行處理,從而避免對(duì)系統(tǒng)產(chǎn)生更大的危害,以保證程序的正常運(yùn)行。
3 常見的異常處理方法
常見的異常處理方法有兩種:一種處理異常是在產(chǎn)生異常的方法中,使用try…catch…finally結(jié)構(gòu);還有一種是進(jìn)行異常的移交,使用關(guān)鍵字throws和throw交給上層方法去處理異常。
在該案例中,對(duì)三種異常進(jìn)行了捕獲,分別是數(shù)組下標(biāo)越界、輸入數(shù)據(jù)格式不正確和Exception異常,當(dāng)觸發(fā)某種異常,則對(duì)相應(yīng)的異常異常進(jìn)行處理。Exception異常類是所有異常的基類,當(dāng)出現(xiàn)catch塊沒有進(jìn)行捕獲的異常,則采用Exception異常類進(jìn)行異常處理。
異常的移交:
實(shí)例分析:初始化參數(shù)x使用了-2,將觸發(fā)NegativeArraySizeException異常,但在Sum方法中不對(duì)該異常進(jìn)行處理,而是在main方法中對(duì)該異常進(jìn)行處理,所以在聲明方法時(shí),使用throws NegativeArraySizeException選項(xiàng),拋出了該異常。使用main 方法對(duì)該方法進(jìn)行捕獲。可見,如果一個(gè)方法沒有對(duì)可能出現(xiàn)的異常進(jìn)行捕獲,調(diào)用該方法的其他方法應(yīng)該對(duì)其可能出現(xiàn)的異常進(jìn)行捕獲。
4 結(jié)束語
在進(jìn)行程序設(shè)計(jì)過程中,異常是不可避免的。這些異常,即使程序本身沒有問題,也有可能產(chǎn)生,所以在開發(fā)時(shí)必須考慮處理。Java語言規(guī)定,在調(diào)用可能拋出捕獲異常的方法時(shí),必須編寫處理異常的代碼,這不僅提高了程序的健壯性,而且避免程序開發(fā)人員忘記編寫必要的容錯(cuò)代碼。本文指出了異常處理的兩種機(jī)制,除此之外還可以使用自定義異常進(jìn)行處理,基于篇幅的原因就不在此討論了。
【Java語言中的異常處理機(jī)制】相關(guān)文章:
Java的異常機(jī)制分析及處理辦法10-27
Java異常處理語句及解析07-27
Java編程中異常處理的方法10-02
java的緩存機(jī)制07-29
java運(yùn)行異常的示例10-31
java運(yùn)行異常示例09-09
java運(yùn)行異常分析08-04
java封裝產(chǎn)品異常的代碼08-02