1.當程序在運行的過程中出現(xiàn)了異常,會由JVM自動根據(jù)異常的類型實例化一個與之類型匹配的異常類们衙。
2.產(chǎn)生異常對象后會判斷當前的語句是否存在異常處理彭则,如果現(xiàn)在沒有異常處理棱烂,就交給JVM進行默認的異常處理哎媚,處理方式:輸出異常信息喇伯,而后結(jié)束程序的調(diào)用。
3.如果此時存在異常的捕獲操作拨与,那么會先有try語句來捕獲產(chǎn)生的異常類實例化對象稻据,再與try'語句的每一個catch進行對比,如果有符合的捕獲類型买喧,則使用當前catch的語句來進行異常的處理捻悯,如果不匹配,則往下繼續(xù)匹配其他catch淤毛。
4.不管最后異常處理是否能夠匹配今缚,都要向后執(zhí)行,如果此時程序中存在finally語句低淡,就先執(zhí)行finally中的代碼姓言。執(zhí)行完finally語句后需要根據(jù)之前的catch匹配結(jié)果來決定如何執(zhí)行,如果之前已經(jīng)成功捕獲異常蔗蹋,就集繼續(xù)執(zhí)行finally之后的代碼何荚,如果之前沒有成功的捕獲異常,九江此異常交給JVM進行默認處理猪杭。
整個過程就像方法傳遞參數(shù)一樣餐塘,只是根據(jù)catch后面的參數(shù)類型進行匹配。既然對象捕獲只是一個異常類對象的傳遞過程皂吮,那么根據(jù)java中對象自動向上轉(zhuǎn)型戒傻,所以異常類對象都可以向父類對象轉(zhuǎn)型,也證明了所有異常類對象都可以使用Exception來接收涮较。
為什么不選擇Throwable稠鼻?
如果該異常只有Exception類型,如果使用Throwable接受狂票,還會表示可以處理Error的錯誤候齿,二用戶是處理不了Error錯誤的(jvm處理),所以開發(fā)中用戶可以處理的異常都要求以Exception為主闺属。
java異常處理流程
異常處理流程.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門禁漓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來跟衅,“玉大人,你說我怎么就攤上這事播歼×骢危” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵秘狞,是天一觀的道長叭莫。 經(jīng)常有香客問我,道長烁试,這世上最難降的妖魔是什么雇初? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮廓潜,結(jié)果婚禮上抵皱,老公的妹妹穿的比我還像新娘。我一直安慰自己辩蛋,他們只是感情好呻畸,可當我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著悼院,像睡著了一般伤为。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上据途,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼佛致!你這毒婦竟也來了贮缕?” 一聲冷哼從身側(cè)響起,我...
- 正文 年R本政府宣布辛块,位于F島的核電站,受9級特大地震影響铅碍,放射性物質(zhì)發(fā)生泄漏润绵。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一胞谈、第九天 我趴在偏房一處隱蔽的房頂上張望尘盼。 院中可真熱鬧,春花似錦烦绳、人聲如沸卿捎。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽午阵。三九已至,卻和暖如春享扔,著一層夾襖步出監(jiān)牢的瞬間底桂,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 八拖云、深入理解java異常處理機制 引子try…catch…finally恐怕是大家再熟悉不過的語句了, 你的答案是...
- 初識異常(Exception) 比如我們在取數(shù)組里面的某個值得時候应又,經(jīng)常會出現(xiàn)定義的取值范圍超過了數(shù)組的大小宙项,那么...
- 2.JAVA異常 異常指不期而至的各種狀況,如:文件找不到株扛、網(wǎng)絡連接失敗尤筐、非法參數(shù)等汇荐。異常是一個事件,它發(fā)生在程...
- 1盆繁、異常 1.1掀淘、異常介紹 異常:不正常。生活中的異常:例:在上課時油昂,突然間停電革娄,造成上課終止。 處理:等待來...