日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

JAVA教程 第四講 Java的例外處理和I/O流(一)

瀏覽:67日期:2024-03-06 08:13:20

4.1 什么是例外

例外就是在程序的運行過程中所發生的異常事件,它中斷指令的正常執行。Java中提供了一種獨特的處理例外的機制,通過例外來處理程序設計中出現的錯誤。

4.1.1 例外示例

【例4-1】

import java.io.*;

class ExceptionDemo1{

public static void main( String args[ ] ){

 FileInputStream fis = new FileInputStream( 'text' );

 int b;

 while( (b=fis.read())!=-1 ){

System.out.print( b );

 }

 fis.close( );

}

 }

查看編譯結果

【例4-2】

class ExceptionDemo2{

public static void main( String args[ ] ){

 int a = 0;

 System.out.println( 5/a );

}

}

運行結果

C:>javac ExceptionDemo2.java

C:>java ExceptionDemo2

java.lang.ArithmeticException: / by zero at

ExceptionDemo2.main(ExceptionDemo2.java:4)

因為除數不能為0,所以在程序運行的時候出現了除0溢出的異常事件。為什么有的例外在編譯時出現,而有的例外是在運行時出現的?讓我們繼續學習java 的例外處理機制。

4.1.2 例外處理機制

拋棄(throw)例外:

在Java程序的執行過程中,如果出現了異常事件,就會生成一個例外對象。生成的例外對象將傳遞給Java運行時系統,這一例外的產生和提交過程稱為拋棄(throw)例外

兩種處理例外的機制:

◇ 捕獲例外:

當Java運行時系統得到一個例外對象時,它將會沿著方法的調用棧逐層回溯,尋找處理這一例外的代碼。找到能夠處理這種類型的例外的方法后,運行時系統把當前例外對象交給這個方法進行處理,這一過程稱為捕獲(catch)例外。這是積極的例外處理機制。如果Java運行時系統找不到可以捕獲例外的方法,則運行時系統將終止,相應的Java程序也將退出。

◇ 聲明拋棄例外:

如果一個方法并不知道如何處理所出現的例外,則可在方法聲明時,聲明拋棄(throws)例外。這是一種消極的例外處理機制。

4.1.3 例外類的層次

在jdk中,每個包中都定義了例外類,而所有的例外類都直接或間接地繼承于Throwable類。圖4-1為jdk中例外類的繼承關系。

java中的例外類可分為兩大類:

Error

動態鏈接失敗,虛擬機錯誤等,通常Java程序不應該捕獲這類例外,也不會拋棄這種例外。

Exception

1)運行時例外:

繼承于RuntimeException的類都屬于運行時例外,例如算術例外(除零錯)、數組下標越界例外等等。由于這些例外產生的位置是未知的,Java 編譯器允許程序員在程序中不對它們做出處理。

2)非運行時例外:

除了運行時例外之外的其他由Exception 繼承來的例外類都是非運行時的例外,例如FileNotFoundException(文件未找到例外)。Java編譯器要求在程序中必須處理這種例外,捕獲例外或者聲明拋棄例外。

4.2 例外的處理

java語言中有兩種例外處理機制:捕獲例外和聲明拋棄例外。下面我們做詳細介紹。

4.2.1 捕獲例外

捕獲例外是通過try-catch-finally語句實現的。

try{

......

 }catch( ExceptionName1 e ){

 ......

 }catch( ExceptionName2 e ){

 ......

 }

 ......

 }finally{

 ......

}

◇ try

捕獲例外的第一步是用try{…}選定捕獲例外的范圍,由try所限定的代碼塊中的語句在執行過程中可能會生成例外對象并拋棄。

◇ catch

每個try代碼塊可以伴隨一個或多個catch語句,用于處理try代碼塊中所生成的例外事件。catch語句只需要一個形式參數指明它所能夠捕獲的例外類型,這個類必須是Throwable的子類,運行時系統通過參數值把被拋棄的例外對象傳遞給catch塊。

在catch塊中是對例外對象進行處理的代碼,與訪問其它對象一樣,可以訪問一個例外對象的變量或調用它的方法。getMessage( )是類Throwable所提供的方法,用來得到有關異常事件的信息,類Throwable還提供了方法printStackTrace( )用來跟蹤異常事件發生時執行堆棧的內容。例如:

try{

......

 }catch( FileNotFoundException e ){

System.out.println( e );

System.out.println( 'message: '+e.getMessage() );

e.printStackTrace( System.out );

 }catch( IOException e ){

System.out.println( e );

 }

catch 語句的順序:

捕獲例外的順序和catch語句的順序有關,當捕獲到一個例外時,剩下的catch語句就不再進行匹配。因此,在安排catch語句的順序時,首先應該捕獲最特殊的例外,然后再逐漸一般化。也就是一般先安排子類,再安排父類。

◇ finally

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

4.2.2 聲明拋棄例外

1.聲明拋棄例外

如果在一個方法中生成了一個例外,但是這一方法并不確切地知道該如何對這一異常事件進行處理,這時,一個方法就應該聲明拋棄例外,使得例外對象可以從調用棧向后傳播,直到有合適的方法捕獲它為止。

聲明拋棄例外是在一個方法聲明中的throws子句中指明的。例如:

public int read () throws IOException{

......

}

throws子句中同時可以指明多個例外,之間由逗號隔開。例如:

public static void main(String args[]) throws

IOException,IndexOutOfBoundsException {…}

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美日韩在线观看视频小说| 三级久久三级久久久| 亚洲tv在线| 日本va欧美va瓶| 婷婷亚洲精品| 日韩精选在线| 久久国产精品免费精品3p| 欧美日韩亚洲三区| 国产欧美日韩在线一区二区 | 亚洲精品动态| 天堂精品久久久久| 欧美久久久网站| 久久av国产紧身裤| 久久精品国产福利| 亚洲黄色中文字幕| 亚洲国产专区| 久热精品在线| 欧美午夜网站| 久久麻豆视频| 久久美女性网| 日韩中文字幕区一区有砖一区 | 欧美激情91| 狠狠久久伊人| 一区二区三区视频免费观看| 午夜久久美女| 欧美在线日韩| а√天堂8资源中文在线| 激情婷婷综合| 日韩国产欧美在线播放| 国产aa精品| 午夜日韩av| 欧美一级网站| 亚洲人成在线网站| 国产一区白浆| 国产精品久久久久久久久免费高清| 成人台湾亚洲精品一区二区| 香蕉人人精品| 麻豆91精品| 欧美综合精品| 91看片一区| 亚洲人成亚洲精品| 成人台湾亚洲精品一区二区| 99日韩精品| 国产精品成人自拍| 国精品一区二区| 国产伦精品一区二区三区在线播放 | 日韩精品成人| 国语精品一区| 另类亚洲自拍| 精品国产乱码久久久| 亚洲资源av| 精品国产欧美日韩| 噜噜噜躁狠狠躁狠狠精品视频| 国产精品igao视频网网址不卡日韩| 久久影院一区| 国产麻豆一区二区三区精品视频| 亚洲高清成人| 国产精品一区二区av日韩在线| 色婷婷狠狠五月综合天色拍| 蜜臀av一区二区在线免费观看| 麻豆视频久久| 久久高清免费观看| 国产乱人伦精品一区| 久久香蕉精品香蕉| 国产精品chinese| 99精品视频在线观看免费播放| 蜜臀久久99精品久久久久久9| 97精品国产一区二区三区| 亚洲九九精品| 99久久99视频只有精品| 国产伦精品一区二区三区视频 | 日韩一区二区三区精品| 国产成人黄色| 四虎在线精品| 一区久久精品| 中文字幕在线视频久| 日韩精品一区二区三区中文字幕| 色爱av综合网| 精品精品99| 国产欧美精品久久| 一区二区不卡| 九九综合九九| 日韩中文在线播放| 麻豆国产91在线播放| 亚洲播播91| 欧美日韩亚洲一区三区| 国产视频一区三区| 免费一级欧美在线观看视频| 一区二区国产在线观看| 伊人久久大香线蕉av不卡| 国产成人精品一区二区三区视频 | 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲一级少妇| 精品一区二区三区四区五区| 日韩高清不卡一区二区| 男人的天堂久久精品| 99久精品视频在线观看视频| 精品国产乱码久久久久久樱花| 清纯唯美亚洲综合一区| 少妇精品久久久一区二区| 亚洲免费婷婷| 黄色av日韩| 免费黄色成人| 99视频精品全部免费在线视频| 国产婷婷精品| 精品一区二区三区中文字幕视频| 午夜天堂精品久久久久| 亚洲欧美日韩精品一区二区| 欧美日韩精品免费观看视欧美高清免费大片 | 日产欧产美韩系列久久99| 香蕉视频成人在线观看| 激情欧美丁香| 亚洲涩涩在线| 日韩欧美国产精品综合嫩v| 久久精品国产免费| 精品视频网站| 福利一区二区三区视频在线观看| 国产欧美在线| 国产极品一区| 国产欧美视频在线| 欧美在线不卡| 国产精品美女在线观看直播| 国产精品午夜一区二区三区| 精品亚洲免a| 成人亚洲一区二区| 另类专区亚洲| 日韩欧美另类一区二区| 日韩另类视频| 黄色精品网站| 蜜臀久久久99精品久久久久久| 亚洲一二三区视频| 日韩精品免费视频人成| 国产欧美一区二区三区国产幕精品| 国产精品99久久久久久董美香| 久久wwww| 一区二区三区四区日本视频| 久久久久久久久丰满| 午夜久久一区| 亚洲精品一二| 国产精品黄色片| 久久电影tv| 性欧美69xoxoxoxo| 国产69精品久久| 偷拍亚洲精品| 国产视频一区二| 麻豆91小视频| 亚洲成人一区在线观看| 在线亚洲国产精品网站| 免费人成在线不卡| 亚洲欧美日本国产| 国产精品最新| 日韩电影二区| 亚洲欧美成人综合| 欧美日韩1区2区3区| 国产精品99一区二区三区| 在线日韩视频| 日韩欧美美女在线观看| 国产成人免费精品| 美女网站一区| 日韩毛片网站| 国产专区精品| 亚洲黄色在线| 国产乱人伦精品一区| 亚洲精品在线影院| 午夜在线精品| 日本午夜精品一区二区三区电影 | 亚洲精品大全| 91偷拍一区二区三区精品| 欧美精品黄色| 午夜电影一区| 一本大道色婷婷在线| 狠狠干综合网| 国产精品三级| 精精国产xxxx视频在线播放| 乱人伦精品视频在线观看| 国产精品久久久免费| 欧美高清一区| 国产精品调教| 中文字幕系列一区| 日本一区二区三区视频在线看| 成人精品视频| 免费观看在线综合色| 国产夫妻在线| 日韩精品一区二区三区中文 | 麻豆视频观看网址久久| 午夜久久福利| 久久男人av| 蜜臀av亚洲一区中文字幕| 国产激情在线播放| 亚洲欧美不卡| av中文字幕在线观看第一页| 亚洲另类黄色| 91精品国产福利在线观看麻豆| 日韩av一区二区三区| 亚洲福利专区| 麻豆精品蜜桃视频网站| 丝袜a∨在线一区二区三区不卡| 成人在线视频免费看| 亚州av日韩av| 国产在线欧美|