亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Java的異常處理機制及其應(yīng)用的探討

        2014-12-31 00:00:00敖勇平

        【摘 要】Java語言擁有強大的異常處理機制,正確地使用好異常處理可以增強程序的健壯性和穩(wěn)定性,本文對Java異常引起的原因,對異常處理機制的三個重要環(huán)節(jié)進(jìn)行了深入的探討,最后通過一個實例來說明Java語言的異常處理的具體應(yīng)用。

        【關(guān)鍵詞】Java語言;異常處理;應(yīng)用

        0.引言

        Java異常是描述在代碼段中發(fā)生的運行出錯情況的對象。程序中的錯誤可能來自于如下兩個方面問題:編譯錯誤和運行錯誤。編譯錯誤是由于所編寫的程序存在語法問題,未能通過由源代碼到目標(biāo)代碼的編譯過程而產(chǎn)生的錯誤,它將由Java語言的編譯系統(tǒng)負(fù)責(zé)檢測和報告;運行錯誤是在程序的運行過程中產(chǎn)生的錯誤。在Java語言中,提供了一種獨特的處理異常的機制,通過這種異常處理機制來處理程序中出現(xiàn)的錯誤,從而提高程序的容錯性,使開發(fā)出來的程序更為健壯。

        1.Java異常類的種類及引起異常的原因

        1.1 Java異常類的種類

        Java異常類的種類可分成兩大類:(1)Error類:指的是Java運行環(huán)境出現(xiàn)的錯誤或系統(tǒng)錯誤,這些錯誤一般是很嚴(yán)重的錯誤,即使捕捉到也無法處理,由Java虛擬機生成并拋出,包括系統(tǒng)崩潰、動態(tài)鏈接失敗、虛擬機錯誤等,在Java程序中不做處理。(2)Exception類:指一些可以被捕獲且可能恢復(fù)的異常情況,是一般程序中可預(yù)知的問題。

        1.2 Java異常引起原因

        Java程序在運行過程中,可能會運行到非正常的執(zhí)行狀態(tài),這些狀態(tài)可能是由以下原因引起的:第一種情況:表達(dá)式的計算違反了Java 語言的規(guī)則,例如除法運算過程中被整數(shù)為0;在載入或鏈接Java 程序時出錯;超出了某些資源限制,例如使用了太多的內(nèi)存。

        第二種情況,Java 程序代碼中的throw 語句被執(zhí)行。第三種情況,異步異常發(fā)生。異步異常的原因可能有:(1)Thread的stop方法被調(diào)用。(2)Java虛擬機內(nèi)部錯誤發(fā)生。

        2.Java中異常處理機制的三個重要環(huán)節(jié)

        2.1拋出異常

        拋出異常就是程序設(shè)計時當(dāng)前代碼中遇到了一個不知道怎么處理的情況,在程序代碼中需要創(chuàng)建一個異常來將這個錯誤描述清楚,并且將這個異常拋出。異常被拋出之后面臨兩個路可走:首先是異常被捕捉并被處理,其次是讓方法繼續(xù)拋出這個異常。

        拋出異常的方式有兩種:

        (1)在方法代碼中使用throw關(guān)鍵字來拋出實例化的異常對象。

        (2)在方法聲明中使用throws關(guān)鍵字拋出方法代碼中throw關(guān)鍵字拋出的異常對象。

        2.2傳遞異常

        異常實例在方法代碼中使用throw關(guān)鍵字被拋出后,如果是throws關(guān)鍵字后面的異常類列表的某個類型的實例,則方法將繼續(xù)拋出這個異常,異常繼續(xù)傳遞給方法的調(diào)用者,直到被處理掉或到達(dá)main()方法,異常傳遞main()方法之后,就會被Java平臺處理掉。

        2.3處理異常

        處理異常就是根據(jù)異常類型,提供不同的catch語句進(jìn)行處理,Java異常處理機制會將異常類型傳遞給匹配的catch語句,然后catch語句就可以根據(jù)異常對象的信息,具體問題分析,進(jìn)行相應(yīng)的補救措施,使程序可以繼續(xù)運行下去。

        Java異常處理機制采用以下三種方法來處理代碼中產(chǎn)生的異常實例:

        (1)try...catch語句捕獲并處理異常,使用try…catch語句處理異常可以分為以下兩種方式:

        1)多類異常,分類處理;2)多類異常,一并處理。

        語法格式如下:

        Try{

        異常代碼 //根據(jù)異常類型,提供不同的catch語句分類進(jìn)行處理

        }catch(Exception1 e){

        處理方法1

        }catch(Exception2 e){

        處理方法2

        }

        1)語法核心:使用try語句標(biāo)記出可能異常的代碼塊,使用catch語句將這些異常按匹配規(guī)則進(jìn)行處理。

        2)匹配規(guī)則:異常實例的類型是catch語句的異常類型或是其子類,若一個catch語句的類型是Throwable類型,則可以用它來處理try語句塊中拋出的所有異常。

        (2)try…catch…finally語句塊處理異常,其中finally語句塊在正常情況下都會被執(zhí)行,唯一不被執(zhí)行的情況是方法執(zhí)行了System.exit()方法。若一個異常沒有被處理掉,在拋出之前會先finally之后再被拋出,即使在catch語句中使用return來結(jié)束程序,finally執(zhí)行完后才返回return。Finally語句通常用來釋放程序所占用的資源,如數(shù)據(jù)庫查詢異常的時候,釋放JDBC連接等。

        語法格式如下:

        try{

        異常代碼

        }catch(Exception e){

        處理方法

        }finally{

        必須要執(zhí)行的代碼

        }

        (3)用throw語句處理異常,對于處理不了的異常或者要轉(zhuǎn)型的異常,在方法的聲明處通過throws關(guān)鍵字拋出異常或在代碼中用throw關(guān)鍵字來拋出異常對象。

        語法格式如下:

        Public static void 方法名(參數(shù))throws 異常對象

        If 語句{

        throw 異常對象;

        }

        3.Java異常處理機制在應(yīng)用程序中的具體應(yīng)用

        本例設(shè)計一個應(yīng)用程序完成課程成績查詢與輸出工作,在一個數(shù)組中存儲一個學(xué)生的2門課成績,從鍵盤輸入要選擇查詢的課程代碼(1~2),輸出對應(yīng)的課程名稱和成績。為防止用戶輸入輸入數(shù)據(jù)時可能發(fā)生的異常情況,在程序設(shè)計時特設(shè)計了異常處理過程。

        3.1應(yīng)用程序主要代碼

        import java.util.InputMismatchException;

        import java.util.Scanner;

        public class four {

        public static void main(String[] args){

        int[] classScore={82,87,92};//聲明一個數(shù)組且初始化值

        Scanner input=new Scanner(System.in);//新建一個鍵盤輸入對象

        System.out.println(\"請輸入要查詢的課程代碼:\");try{

        int i=input.nextInt(); //輸入一個整數(shù)

        int result=score[i-1];

        System.out.println(\"課程名稱\t成績\");

        if(i==201)//課程代碼判斷

        System.out.println(\"大學(xué)語文:\t\");

        else if(i==202)

        System.out.println(\"Android應(yīng)用開發(fā):\t\");

        System.out.println(result);//輸出課程的成績

        }catch(InputMismatchException e){//異常捕獲及處理

        System.out.println(\"輸入課程代碼不正確!\");

        }catch(ArrayIndexOutOfBoundsException e){

        System.out.println(\"數(shù)組下標(biāo)越界!\");//異常捕獲及處理

        }catch(Exception e){

        System.out.println(\"程序產(chǎn)生異常,原因為:\"+e);

        }finally{

        System.out.println(\"程序結(jié)束!\");

        }

        }

        }

        3.2應(yīng)用程序異常處理分析

        在這個應(yīng)用程序中,程序開發(fā)人員設(shè)計了三個catch語句來對可能的異常進(jìn)行處理,增強程序的健壯性。異常處理如下:

        (1)能夠自動判斷輸入數(shù)據(jù)是不是合法的數(shù)字?jǐn)?shù)據(jù),如果不是,第一個catch語句將捕獲“InputMismatchException”異常,中止程序運行,給出提示信息:“輸入不正確,請檢查!”。

        (2)能夠自動判斷輸入的數(shù)據(jù)是否超出了范圍,超出了范圍會導(dǎo)致此程序中數(shù)組下標(biāo)越界,第二個catch語句將捕獲到“ArrayIndexOut

        OfBoundsException”異常,中止程序運行,并給出提示信息:“數(shù)組下標(biāo)越界!”。

        (3)其他異常檢測,本例中通過“Exception”語句,來捕獲上面兩種之外情況外的其他異常,如果發(fā)生了其他的異常,并給出提示信息:“程序產(chǎn)生異常,原因為:+e”。

        4.小結(jié)

        異常處理機制是Java語言的重要機制,正確、合理地使用異常處理可以增強程序的可靠性和健壯性。本文從“什么是異常”入手,分析了Java異常引起的原因,對異常處理機制的三個重要環(huán)節(jié)進(jìn)行了較深入的探討,最后以一個簡單的應(yīng)用程序為例,分析了Java語言的異常處理過程,使我們清楚到看到Java語言強大的異常處理機制。

        異常處理機制是一種安全高效的編程策略,是開發(fā)應(yīng)用程序必不可少的部分,但在應(yīng)用程序開發(fā)初期往往容易被忽略。 因此,做為一個合格的Java程序員來說,應(yīng)該充分掌握J(rèn)ava語言的異常處理機制,在程序開發(fā)過程中盡可能的控制異常的發(fā)生,盡可能控制拋出大量的異常。

        【參考文獻(xiàn)】

        [1]丁學(xué)鈞,溫秀梅.基于Delphi的異常處理機制及其應(yīng)用研究[J].福建電腦,2005.7.

        [2]耿祥義.Java基礎(chǔ)教程(第3版)[M].北京:清華大學(xué)出版社,2012.5.

        国产精品天干天干在线观蜜臀| 国产丝袜长腿美臀在线观看| 精品人妻一区二区三区浪人在线| 国产精品久久国产精品99 | 偷窥村妇洗澡毛毛多| 国产av一区二区凹凸精品| 色av色婷婷18人妻久久久| 亚洲人妻调教中文字幕| 国产亚洲2021成人乱码| 亚洲美女影院| 亚洲无码图| 午夜免费观看一区二区三区| 久久久久亚洲av成人网人人软件| 失禁大喷潮在线播放| 久久国产精品免费一区六九堂| 亚洲成人av一区免费看| 成人试看120秒体验区| 欧美性videos高清精品| 亚洲精品乱码久久久久久按摩高清| 国产精品一区二区夜色不卡| 亚洲熟妇av一区| 亚洲av国产av综合av| 亚洲日本精品一区久久精品| 日本免费播放一区二区| 熟妇人妻无乱码中文字幕真矢织江| 青楼妓女禁脔道具调教sm| 久久亚洲国产中v天仙www| 在线免费午夜视频一区二区| 本道天堂成在人线av无码免费 | 久久久久亚洲av无码专区网站| 26uuu欧美日本在线播放| 高清在线有码日韩中文字幕| 狠狠色综合7777久夜色撩人ⅰ| 中文文精品字幕一区二区| 亚洲av一二三四又爽又色又色| 亚洲深深色噜噜狠狠网站| 国产在线观看www污污污| 黄色毛片视频免费| 国产视频一区二区三区在线看| 久久久精品中文字幕麻豆发布| 午夜丰满少妇性开放视频|