中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java異常體系知識點有哪些

發布時間:2021-11-24 16:53:17 來源:億速云 閱讀:144 作者:iii 欄目:大數據

本篇內容介紹了“Java異常體系知識點有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

一、異常簡介

優秀的程序代碼,都在追求高效,安全,和低錯誤率,但是程序中的異常是無法避免的,降低異常出現的頻率是關鍵,異常出現如何處理是另一個重要方面,Java體系中異常框架對于系統開發是十分重要的。

面對系統異常時,不要慌亂,異常雖然是錯誤,也是系統發出的消息,標識系統的缺陷和需要改進的地方。

二、API體系

Java的API中已經定義許多異常類,分為兩大類,錯誤Error和異常Exception,Throwable作為所有異常的超類,如圖:

Java異常體系知識點有哪些

Error:一般為底層的不可恢復的類,一般此類錯誤都比較嚴重,JVM將終止其運行的線程;

  • VirtualMachineError:虛擬機運行錯誤;

  • OutOfMemoryError:內存溢出;

Exception:程序本身可以捕獲并且可以預處理的異常,例如捕獲或者拋出;

  • RuntimeException:運行時異常;

  • CheckException:已檢查異常,編譯階段必須處理;

幾個經典的常見的RunTimeException如下:空指針NullPointerException;數組下標越界ArrayIndexoutofBoundsException等。

三、異常處理

Java異常處理關鍵字,分別是:try、catch、finally、throw、throws。

應該在合適的位置處理異常,異常的處理準則如下:誰知情誰處理,誰負責誰處理,誰導致誰處理。

Java異常體系知識點有哪些

1、拋出異常

即異常在當前流程下不處理,一種是直接通過方法傳遞給調用者,throws關鍵字是用于在方法聲明上聲明拋出異常類型的,并且一次可以聲明拋出多種類型的異常。throw關鍵字是用于方法的內部拋出一個異常對象,常在業務校驗時拋出提示。

需要特別說明的一點,在Spring框架中,事務觸發多數是以是否拋出異常為標識來處理的,如果方法在事務控制內,方法內異常捕獲但是最終沒有拋出,那該事務則無效。

2、捕獲異常

通常捕獲異常會使用try-catch-finally關鍵字三連操作:

Try嘗試捕獲異常:

如果語句依次執行結束,則跳過catch,在存在finally代碼塊時,則執行否則執行后續流程;

如果捕獲異常,則匹配catch中的類型,如果沒有與之匹配的catch類型,則該異常交給JVM處理,finally代碼會被執行,流程之后的代碼不會被執行;

如果捕獲異常且存在相匹配的catch類型,則跳到catch代碼塊執行,finally代碼會被執行,執行完finally代碼塊之后繼續執行后續代碼;

Catch匹配可能出現的異常類型,并在其中做補償處理,例如出現異常情況,需要更新一個異常狀態等,如果沒有catch塊,后必須跟finally塊,處理資源釋放;

Finally無論是否捕獲異常,finally代碼會被執行,也是面試中常見的異常問題之一,例如在finally代碼塊return,或者修改返回值等,主要涉及到值傳遞和引用傳遞方面。

3、異常日志

復雜的業務系統必備功能,異常日志體系,用來分析運行問題,作為系統不斷優化的核心依據,通常會記錄如下幾塊:

  • 異常類型:分析異常發生的關鍵原因;

  • 異常信息:通常會簡單記錄e.getMsg輸出的內容;

  • 異常位置:快速定位異常發生的位置[類.方法];

  • 業務參數:特定業務參數場景才能復現的問題;

  • 時間節點:有的并發問題是在特定時間段出現;

異常日志記錄下來之后,還會定期進行任務分析,不斷發現系統容易出問題的地方,然后再不斷的改進和優化。

4、熔斷降級

在微服務架構系統下,某個服務故障或者異常,觸發熔斷該服務,避免引發整個微服務鏈路異常,防止整個系統服務的雪崩。以此緩解服務器資源的的壓力,以保證核心業務的正常運行。

“Java異常體系知識點有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

古交市| 龙岩市| 金平| 梨树县| 北票市| 门源| 名山县| 吉林省| 财经| 福建省| 大同县| 宁国市| 阳谷县| 临邑县| 金平| 钟山县| 嘉定区| 容城县| 黔西县| 浦江县| 合作市| 哈尔滨市| 沿河| 无为县| 隆回县| 贵南县| 濉溪县| 文昌市| 吉木乃县| 宾阳县| 宁明县| 蒙山县| 贵德县| 九龙城区| 大埔区| 富宁县| 冕宁县| 灵璧县| 中阳县| 琼结县| 青神县|