阿里巴巴Java開發手冊 梳理筆記 - RuntimeException 應預先檢查進行規避

阿里巴巴Java開發手冊 梳理筆記 - RuntimeException 應預先檢查進行規避

規約內容:html

2.1 異常處理

1. 【強制】 Java 類庫中定義的一類 RuntimeException 能夠經過預先檢查進行規避,而不該該
經過 catch 來處理,好比: IndexOutOfBoundsException , NullPointerException 等等。
說明:沒法經過預檢查的異常除外,如在解析一個外部傳來的字符串形式數字時,經過 catch
NumberFormatException 來實現。
正例: if (obj != null) {...}
反例: try { obj.method() } catch (NullPointerException e) {...}

擴展資料

另外一個角度看『異常』java

在 Exception 中,unchecked 異常是運行時異常,它們都繼承自 RuntimeException, 不須要程序進行顯式的捕捉和處理,
unchecked 異常能夠進一步細分爲3 類:

可預測異常(Predicted Exception)
常 見 的 可預 測 異 常 包 括 IndexOutOfBoundsException、NullPointerException 等, 基 於對 代 碼 的 性 能 和 穩定性要求,此類異常不該該被產生或者拋出,而應該提早作好邊界檢查、空指針判斷等處理。顯式的聲明或者捕獲此類異常會對程序的可讀性和運行 效率產生很大影響。

需捕捉異常(Caution Exception)
例如在使用 Dubbo 框架進行 RPC 調用時 產生的遠程服務超時異常 DubboTimeoutException,此類異常是客戶端必須顯式處理的異常,不能因服務端的異常致使客戶端不可用,此時處理方案能夠是重試或者降級處理等。

可透出異常 (Ignored Exception) 
主要是指框架或系統產生的且會自行處理的異常,而程序無須關心。例如針對 Spring 框架中拋出的 NoSuchRequestHa ndlingMethodException 異常,Spring 框架會本身完成異常的處理,默認將自身拋出的異常自動映射到合適的狀態碼,好比啓動防禦機制跳轉到 404 頁面。

Java異常梳理正則表達式

常見的RuntimeException的子類
(1)ArithmeticException  算術異常
引起緣由: 分母不能爲0
如何避免:除以前,先判斷分母
(2)ClassCastException  類型轉換異常
(3)IllegalArgumentException    非法參數異常
具有子類:NumberFormatException 數字格式異常
引發緣由:參數格式不合法
如何避免:經過某些技術,保證參數文本的有效格式(正則表達式,使用特殊字符制約格式)[0-9][a-z]
(4)IndexOutOfBoundsException 下標越界異常
具有兩個子類:
ArrayIndexOutOfBoundsException 數組下標越界異常
StringIndexOutOfBoundsException 字符串下標越界異常
引發緣由:下標超過有效邊界  [0, ds.length-1]
如何避免:操做下標過程當中避免越界
(5)NullPointerException   空指針異常
引發緣由:調用null引用的成員  屬性或 方法
如何避免:調用以前先判斷是否爲空
資料摘取自:http://f.dataguru.cn/java-338689-1-1.html
相關文章
相關標籤/搜索