999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Java的異常處理機制及其應用的探討

2014-12-31 00:00:00敖勇平
科技致富向導 2014年20期

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

【關鍵詞】Java語言;異常處理;應用

0.引言

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

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

1.1 Java異常類的種類

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

1.2 Java異常引起原因

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

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

2.Java中異常處理機制的三個重要環節

2.1拋出異常

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

拋出異常的方式有兩種:

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

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

2.2傳遞異常

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

2.3處理異常

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

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

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

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

語法格式如下:

Try{

異常代碼 //根據異常類型,提供不同的catch語句分類進行處理

}catch(Exception1 e){

處理方法1

}catch(Exception2 e){

處理方法2

}

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

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

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

語法格式如下:

try{

異常代碼

}catch(Exception e){

處理方法

}finally{

必須要執行的代碼

}

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

語法格式如下:

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

If 語句{

throw 異常對象;

}

3.Java異常處理機制在應用程序中的具體應用

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

3.1應用程序主要代碼

import java.util.InputMismatchException;

import java.util.Scanner;

public class four {

public static void main(String[] args){

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

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

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

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

int result=score[i-1];

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

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

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

else if(i==202)

System.out.println(\"Android應用開發:\t\");

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

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

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

}catch(ArrayIndexOutOfBoundsException e){

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

}catch(Exception e){

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

}finally{

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

}

}

}

3.2應用程序異常處理分析

在這個應用程序中,程序開發人員設計了三個catch語句來對可能的異常進行處理,增強程序的健壯性。異常處理如下:

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

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

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

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

4.小結

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

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

【參考文獻】

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

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

主站蜘蛛池模板: 亚洲一级毛片在线播放| 日本人妻丰满熟妇区| 亚洲色图欧美视频| 欧美国产综合色视频| 丰满人妻被猛烈进入无码| 欧美有码在线| 婷婷六月在线| 日本一区二区三区精品视频| 久久96热在精品国产高清| 麻豆AV网站免费进入| 亚洲综合网在线观看| JIZZ亚洲国产| 日韩国产精品无码一区二区三区| 曰韩免费无码AV一区二区| 国产亚洲精品91| 国产精品九九视频| 青草视频久久| 婷婷五月在线| 亚洲伦理一区二区| 97视频免费在线观看| 麻豆国产在线观看一区二区| 91无码网站| 日韩无码视频网站| av尤物免费在线观看| 美女被操91视频| 亚洲精品无码AV电影在线播放| 黄色网站在线观看无码| av在线5g无码天天| 亚洲不卡av中文在线| 综合色区亚洲熟妇在线| 熟妇丰满人妻av无码区| www.av男人.com| 免费在线国产一区二区三区精品| 亚洲电影天堂在线国语对白| 午夜福利无码一区二区| 被公侵犯人妻少妇一区二区三区| 亚洲黄色激情网站| 91欧美亚洲国产五月天| 午夜国产小视频| 在线观看国产精美视频| 国产精品v欧美| 国产9191精品免费观看| 色婷婷电影网| 乱人伦视频中文字幕在线| 激情午夜婷婷| 午夜啪啪福利| 99无码中文字幕视频| 国产欧美日韩另类| 国产精品va免费视频| 在线播放真实国产乱子伦| 亚洲综合狠狠| 夜夜爽免费视频| 波多野结衣一区二区三区AV| 国产黄网永久免费| 亚洲色欲色欲www在线观看| 久久精品这里只有国产中文精品| 久久精品一品道久久精品| 久久伊伊香蕉综合精品| 香蕉久久永久视频| 国产区成人精品视频| 中国丰满人妻无码束缚啪啪| 日韩福利在线观看| 国产精品久久久久无码网站| 欧美www在线观看| 欧美国产中文| 五月婷婷导航| 国产在线一区二区视频| 欧美视频免费一区二区三区| 国产迷奸在线看| 99久久精品久久久久久婷婷| 精品国产一二三区| 无码高潮喷水专区久久| 色精品视频| 亚洲综合亚洲国产尤物| 中日无码在线观看| 久久久成年黄色视频| 精品国产成人av免费| 色亚洲激情综合精品无码视频| 在线观看亚洲精品福利片| 欧美a√在线| 91国内在线观看| 九色91在线视频|