日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java异常类(Throwable)

發(fā)布時間:2025/3/20 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java异常类(Throwable) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、異常類體系

二、異常類由來與定義

【異常類的由來】:Java把程序在運行時出現(xiàn)的各種不正常情況也看成了對象, 提取屬性和行為進行描述,比如異常名稱,異常信息,異常發(fā)生位置,從而形成了各種異常類【定義】異常是程序在運行期發(fā)生的不正常的事件,它會打斷指令的正常執(zhí)行流程。

三、嚴重的異常:錯誤(Error)

此類異常:【一般不用處理】

指JVM系統(tǒng)內(nèi)部錯誤或資源耗盡等【嚴重情況】,屬于JVM需要負擔的責任

特點

這一類異常事件一般無法恢復或不可能捕獲
程序(員)不需要處理這類異常,因為是JVM的問題

四、不嚴重的異常:異常(Exception)

此類異常:【一般要處理】

因編程錯誤或偶然的外在因素導致的【一般性問題】

異常處理機制

【拋出異常】:Java程序在執(zhí)行過程中如果出現(xiàn)異常,會自動生成一個異常類對象,該異常對象將被自動提交給JVM,這個過程稱為拋出(throw)異常
【捕獲異常】:當JVM接收到異常對象時,會尋找能處理這一異常的代碼并把當前異常對象交給其處理,這一過程稱為捕獲(catch)異常和處理異常。
如果JVM找不到可以捕獲異常的代碼,則運行時系統(tǒng)將終止,相應的Java程序也將退出。

特點

程序員通常可以處理這類異常得到恰當?shù)奶幚頃r,程序有機會恢復至正常運行狀況

從處理的必要性角度分
非受檢(unchecked)異常(運行時)
受檢(checked)異常(非運行時)

非受檢(unchecked)異常(運行時)

編譯器不要求必須處理的異常
一般是指編程時的邏輯錯誤,是程序員應該積極避免其出現(xiàn)的異常

父類:java.lang.RuntimeException
錯誤的類型轉(zhuǎn)換:java.lang.ClassCastException
數(shù)組下標越界:java.lang.ArrayIndexOutOfBoundsException
空指針訪問:java.lang.NullPointerException
算術(shù)異常(除0溢出):java.lang.ArithmeticException

受檢(checked)異常(非運行時)

編譯器要求必須處理的異常
在編譯期間要對其可能出現(xiàn)的異常進行處理

有如下這些類

沒有找到指定名稱的類:java.lang.ClassNotFoundException
訪問不存在的文件:java.io.FileNotFoundException
操作文件時發(fā)生的異常:java.io.IOException
操作數(shù)據(jù)庫時發(fā)生的異常:java.sql.SQLException

異常處理兩種方式
1.捕獲異常

自己解決問題

步驟
一旦產(chǎn)生異常,則首先會產(chǎn)生一個異常類的對象
在try語句中對此異常對象進行捕捉;
產(chǎn)生的異常對象與catch語句中的各個異常類型進行匹配,如果匹配成功,則執(zhí)行catch語句中的代碼。

使用的語句:try{}catch(){}catch(){}finally{}

try 代碼段包含的是可能產(chǎn)生異常的代碼
try 代碼段后可以有0-多個catch代碼段,再跟0-1個finally代碼段
每個catch代碼段只聲明一種其能處理的特定類型的異常,并提供處理的方法。
當異常發(fā)生時,程序會中止當前的流程去執(zhí)行相應的catch代碼段。
若存在finally,finally段的代碼無論是否發(fā)生異常都執(zhí)行,作用:

關(guān)閉打開的文件
刪除臨時文件
關(guān)閉數(shù)據(jù)庫的連接等

只有發(fā)生異常的時候 才會執(zhí)行catch語句
使用多重 catch 語句時,異常子類一定要位于異常父類之前。
getMessage() 方法,用來獲得有關(guān)異常事件的字符串信息。
printStackTrace() 方法,用來跟蹤異常事件發(fā)生時執(zhí)行堆棧的內(nèi)容。

2.拋出異常

自己解決不了,讓調(diào)用者來解決

throw方法 拋出異常類

產(chǎn)生異常拋出異常對象 方法內(nèi)部 只能拋一個異常對象 不能直接拋出受檢異常

throws方法 拋出異常類

方法名后面 可以同時拋多個異常類型 能夠直接拋出受檢異常

throws使用格式:[修飾符] 返回值類型 方法名([形式參數(shù)列表]) [throws 異常類1,異常類2….]{}

注意:
1)如果throw 和 throws 連用,就一定會發(fā)生異常

2)如果想拋出一個產(chǎn)生的受檢異常對象

throw new 異常對象
通過throws在方法名后面 拋出

自定義異常

自定義受檢異常:繼承Exception是受檢異常
自定義非受檢異常:繼承 RuntimException 非受檢異常

總結(jié)

以上是生活随笔為你收集整理的Java异常类(Throwable)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。