观看麻豆影视文化有限公司-国产 高清 在线-国产 日韩 欧美 亚洲-国产 日韩 欧美 综合-日日夜夜免费精品视频-日日夜夜噜

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

  • 生活
  • 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(...)){

...

}

猜你喜歡

主站蜘蛛池模板: 国内精品国语自产拍在线观看55 | 全部免费的毛片在线看美国 | 视频一区亚洲 | 久久se精品一区精品二区 | 国内精品视频成人一区二区 | 亚洲 欧美 国产 中文 | 国产日韩欧美在线 | 老司机午夜精品网站在线观看 | 手机看片1024国产基地 | 思99re久久这里只有精品首页 | 久青草网站 | 亚洲免费中文 | 亚洲性生活视频 | 婷婷的久久五月综合先锋影音 | 女人张开腿让男人捅视频 | 一区二区网站在线观看 | 日本免费一区二区三区三州 | 国产高清美女一级a毛片久久w | 播播网手机在线播放 | 国产一区二区精品在线观看 | 免费乱淫视频 | 999久久久 | 免费观看日本高清a毛片 | 免费特黄一区二区三区视频一 | 欧美日韩一区二区三区视频播 | 9191在线亚洲精品 | 久久精品3| 最新精品亚洲成a人在线观看 | 免费乱码中文字幕网站 | 超级香蕉97视频在线观看一区 | 欧美 亚洲 丝袜 清纯 中文 | 久青草国产手机在线观 | 中文字幕亚洲精品 | 日本成人免费观看 | 欧美一级毛片久久精品 | 亚洲第一视频在线观看 | 免费观看a毛片一区二区不卡 | 欧美一级α片毛片免费观看 | 日韩国产三级 | 欧美日韩在线第一页 | 亚洲一区二区三区四区五区 |