Java異常

異常

異常是指在程序運行過程中發生的不正常事件,它會中斷正在運行的程序
有幾點需注意:
異常是對象;異常是方法拋出的,方法的調用者可以捕獲和處理該異常;不應該讓方法來終止程序,應該由調用者決定是否終止;異常處理根本的優勢是將異常檢測從異常處理中分離出來。
這裏寫圖片描述

異常處理

try 執行可能產生異常的代碼
catch 捕獲異常
e.printStackTrace();//打印堆棧信息,查看出錯信息,放在catch塊中輔助處理異常
這裏寫圖片描述
c) throws throw
throws 聲明有可能會有異常,用於編譯異常代碼編寫
throw 拋出異常

自定義異常

爲什麼要使用自定義異常,有什麼好處?

1.我們在工作的時候,項目是分模塊或者分功能開發的 ,基本不會你一個人開發一整個項目,使用自定義異常類就統一了對外異常展示的方式。

2.有時候我們遇到某些校驗或者問題時,需要直接結束掉當前的請求,這時便可以通過拋出自定義異常來結束,如果你項目中使用了SpringMVC比較新的版本的話有控制器增強,可以通過@ControllerAdvice註解寫一個控制器增強類來攔截自定義的異常並響應給前端相應的信息(關於springMVC控制器增強的知識有空再和大家分享)。

3.自定義異常可以在我們項目中某些特殊的業務邏輯時拋出異常,比如”中性”.equals(sex),性別等於中性時我們要拋出異常,而Java是不會有這種異常的。系統中有些錯誤是符合Java語法的,但不符合我們項目的業務邏輯。

4.使用自定義異常繼承相關的異常來拋出處理後的異常信息可以隱藏底層的異常,這樣更安全,異常信息也更加的直觀。自定義異常可以拋出我們自己想要拋出的信息,可以通過拋出的信息區分異常發生的位置,根據異常名我們就可以知道哪裏有異常,根據異常提示信息進行程序修改。比如空指針異常NullPointException,我們可以拋出信息爲“xxx爲空”定位異常位置,而不用輸出堆棧信息

在 Java 中你可以自定義異常。編寫自己的異常類時需要記住下面的幾點。

所有異常都必須是 Throwable 的子類。
如果希望寫一個檢查性異常類,則需要繼承 Exception 類。
如果你想寫一個運行時異常類,那麼需要繼承 RuntimeException 類。
並提供無參構造和對應的有參構造

可以像下面這樣定義自己的異常類:

class MyException extends Exception{ }
關於異常的代碼實現可以從網上找到

多重catch

當有多個異常需要catch時,需要注意排列catch 語句的順序:先子類後父類
發生異常時按順序逐個匹配
只執行第一個與異常類型匹配的catch語句

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章