亚洲情人网-亚洲情人-亚洲欧洲综合-亚洲欧洲自拍-欧美专区亚洲

出現內部錯誤(對計算機進行重鏡像出現內部錯誤)

  • 生活
  • 2023-04-26 14:03

一、異常分類

二、異常的聲明與拋出

1.異常的聲明

2.異常的拋出

三、異常的捕獲

1.捕獲異常--try-catch

2.捕獲多個異常--try-catch-catch-...

3.再次拋出異常

4.finally子句

一、異常分類

異常對象都繼承自Throwable,

Error:描述了Java運行時系統的內部錯誤和資源耗盡錯誤。在應用程序代碼中不應該拋出這個類型的異常。

RuntimeException:由編程錯誤導致的異常

IOException:IO相關異常

Java語言規范將繼承Error類、RuntimeException類的所有異常稱為非檢查型異常。所有其他異常檢查型異常。

二、異常的聲明與拋出1.異常的聲明

如果遇到了無法處理的情況,Java***可以聲明拋出一個異常。***不僅需要告訴編譯器將要返回什么值,還要告訴編譯器有可能發生什么錯誤。

以下是FileInputStream的一個真實示例:

//在文件存在時,返回一個文件輸入流,在文件不存在時,會拋出一個文件不存在異常

publicFileInputStream(Stringname)throwsFileNotFoundException{

...

}

聲明異常的場景:

調用了一個拋出檢查型異常的***,例如調用FileInputStream構造***。

檢測到一個錯誤,并且利用throw語句拋出一個非檢查型異常。

程序出現錯誤,如除零、數組越界異常的。

Java虛擬機或運行庫出現內部錯誤。

一個***聲明拋出多個異常:

publicImageloadImage(Stringpath)throwsFileNotFundException,EOFException{

...

}

不需要聲明從Error繼承的異常,任何代碼都可拋出那個異常,我們無法控制。

2.異常的拋出

當遇到一些異常情況,無法繼續執行下去時,需要拋出異常。

//在***內部需要拋出異常時,需要在***首部聲明異常。

publicvoidmethod()throwsException{

...

thrownewException();

}

拋出異常的步驟:

找到一個合適的異常類

創建這個類的一個對象

將對象拋出

三、異常的捕獲

1.捕獲異常–try-catch

要想捕獲一個異常,需要設計try/catch語句塊

try{

code

morecode

morecode

}catch(ExceptionTypee){

handlerforthistype

}

如果try語句塊中的任何代碼拋出了catch子句指定的一個異常類,那么:

程序將跳過try語句塊的其余代碼

程序將執行catch子句中的處理器代碼

如果try語句中的代碼沒有拋出異常,程序將跳過catch子句

如果***中的任何代碼拋出了catch中沒有聲明的異常類型,那么這個異常就不會被捕獲。

異常傳遞技巧:

要捕獲你能處理的異常

繼續傳播你不能處理的異常

要傳遞異常,就必須在***聲明異常

2.捕獲多個異常–try-catch-catch-…

在一個try語句中可以捕獲多個異常類型,并對不同類型的異常做出不同的處理。要為每一個異常類型使用一個單獨的catch子句:

try{

...

}catch(FileNotFundExceptione){

handlercode

}catch(UnknowHostExceptione){

handlercode

}catch(IOExceptione){

handlercode

}

可使用e.getMessage()獲取異常描述信息

在Java7及以上版本,可使用同一catch子句中捕獲多個異常:

使用場景:當出現一種以上的異常,并且異常的處理流程相同時使用。

try{

...

}catch(FileNotFundException|UnknowHostExceptione){

//這里的異常變量e,隱式的被final修飾,不可修改。

handlercode

}catch(IOExceptione){

handlercode

}

3.再次拋出異常

再次拋出異常:可以在catch中拋出一個異常,通常需要改變異常的類型時,需要這樣處理。

try{...}catch(Exceptione){thrownewRuntimeException(e.getMessage);}4.finally子句

作用:不管是否有異常被捕獲,finally代碼塊,都將被執行,所以常用來釋放資源。

FileInputStreamin=newFileInputStream(...);

try{

morecode

}catch(IOExceptione){

exceptionhandlercode

}finally{

in.close();

}

執行情況分析:

未發生異常:先try后finally

發生異常,被捕獲:先try,發生異常時catch,

catch處理中出現異常,跳過catch后續處理,執行finally,并將異常返回給調用者。

catch處理中未出現異常,執行完catch代碼,最后執行finally

發生異常,未被捕獲:先try,后finally,并將異常返回給調用者。

注意不要再finally中使用return返回,會發生預想不到的錯誤。

5.try-with-Resources語句

try代碼塊執行結束時,會自動調用close***,等同于自動釋放資源。

在try()中的資源類,必須實現AutoCloseable接口或Closeable的類,才可使用。

try(FileInputStreamfis=newFileInputStream(...)){

...

}

猜你喜歡

主站蜘蛛池模板: 羞羞视频网 | 亚洲毛片免费看 | 国产成人久久综合二区 | a级日本高清免费看 | 狼狼色丁香久久女婷婷综合 | 羞羞视频在线观看 | 在线观看精品视频网站www | 精品国产免费久久久久久 | 羞羞视频免费网站在线看 | 黄网国产 | 欧美日韩小视频 | 亚洲一级片在线播放 | 亚洲开心激情网 | 黄色大片国产 | 亚洲男性天堂 | 99久久精品国产一区二区 | 久久精品国内一区二区三区 | 久久精品国产一区二区三区 | 丁香啪啪天堂激情婷婷 | 5月丁香6月婷婷 | 精品日韩在线视频 | 自拍偷拍免费 | 成人欧美一区二区三区视频不卡 | 久久精品国产精品亚洲精品 | 亚洲天堂资源网 | 不卡国产在线 | 丁香激情综合色伊人久久 | 美女被羞羞产奶视频网站 | 国产美女精品视频 | 精品999久久久久久中文字幕 | 婷婷六月久久综合丁香可观看 | 韩日毛片| 妖精永久免费观看 | 欧美日韩一区二区三区视频 | 亚洲成人app| 国产乱码精品一区二区 | 亚洲高清在线天堂精品 | 婷婷色影院 | 四虎成人网 | 亚洲福利区 | 在线观看一区二区三区四区 |