JAVA異常處理捕獲與拋出原理解析
JAVA 異常
當(dāng)代碼運(yùn)行出現(xiàn)錯(cuò)誤導(dǎo)致程序終止運(yùn)行或出現(xiàn)錯(cuò)誤情況的狀況,就是異常。異常不是指語法錯(cuò)誤,即不屬于編譯錯(cuò)誤,只有運(yùn)行的程序才會(huì)有異常。
這個(gè)時(shí)候,JAVA 就提供了優(yōu)秀的處理方法:異常處理
異常處理能讓程序在異常發(fā)生時(shí),按照異常處理設(shè)定的邏輯對(duì)異常進(jìn)行處理,最大程度保證程序繼續(xù)運(yùn)行,并且顯示并處理異常。
JAVA 程序發(fā)生異常,就會(huì)用對(duì)應(yīng)的異常類的對(duì)象來封裝異常,JRE(Java Runtime Environment) 便會(huì)尋找對(duì)應(yīng)的異常處理邏輯來處理該異常。
總的說來,異常處理機(jī)制就是,當(dāng) JAVA 異常出現(xiàn),會(huì)將其封裝成對(duì)象,JRE 會(huì)通過對(duì)象特點(diǎn)尋找已經(jīng)設(shè)定好的處理邏輯進(jìn)行處理。
JAVA 異常處理方式
try...catch...finally (有單catch和多catch處理方式,執(zhí)行邏輯基本相同,finally 可要可不要)
public class Try{ public static void test(){ try { } catch (Exception e) { //TODO: handle exception } finally{ //TODO: recycle } } }
- try: 置放需要監(jiān)聽的代碼塊,當(dāng)代碼塊出現(xiàn)異常,異常會(huì)被拋出
- catch: 用于捕獲 try 代碼塊的拋出的異常
- finally: 在異常拋出與捕獲之前執(zhí)行,主要用于回收 try 代碼塊里打開的資源(比如連接,文件等),如果 finally 代碼塊有終止語句,那么不會(huì)向后執(zhí)行
- throw: 拋出異常
- throws: 用于方法簽名中,聲明該方法可能拋出的異常
同時(shí)異常類很多,還可以通過繼承 Exception 類來自定義異常,同時(shí)還可以通過
assert 關(guān)鍵字進(jìn)行斷言檢查(在命令行模式下運(yùn)行Java程序時(shí)可增加參數(shù)-enableassertions或者-ea打開斷言??赏ㄟ^-disableassertions或者-da關(guān)閉斷言)。至于有哪些異常類,怎么用,就看文檔吧。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Spring-MVC異步請(qǐng)求之Servlet異步處理
這篇文章主要介紹了Spring-MVC異步請(qǐng)求之Servlet異步處理,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-01-01SpringBoot JPA實(shí)現(xiàn)增刪改查、分頁、排序、事務(wù)操作等功能示例
本篇文章主要介紹了SpringBoot JPA實(shí)現(xiàn)增刪改查、分頁、排序、事務(wù)操作等功能示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03徹底解決IDEA中SpringBoot熱部署無效的問題(推薦)
這篇文章主要介紹了徹底解決IDEA中SpringBoot熱部署無效的問題,本文給大家?guī)韱栴}原因分析通過圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2020-09-09Elasticsearch寫入瓶頸導(dǎo)致skywalking大盤空白
這篇文章主要為大家介紹了Elasticsearch寫入瓶頸導(dǎo)致skywalking大盤空白的解決方案,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-02-02springboot對(duì)接第三方微信授權(quán)及獲取用戶的頭像和昵稱等等
這篇文章主要介紹了springboot對(duì)接第三方微信授權(quán)及獲取用戶的頭像和昵稱等等,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01