激戰2丨節日收藏-金爪節日收藏(《超級冒險盒:官方小說攻略》)
阿新 • • 發佈:2022-04-05
在java中有兩種異常,一種是RuntimeException,這種異常是非檢查型別的 ,通常是我們的程式程式碼問題。另一種異常是才是我們要處理的異常,這種異常通常和環境有關,比如開啟一個不存在的檔案,這種異常可以丟擲,去查詢解決該問題的方法,而不是直接中止程式
notes:在繼承中,子類不能丟擲比超類更加普遍的異常,超類沒有丟擲異常,子類也不能丟擲異常。通常子類丟擲的異常是父類異常的某種情況。
一. 如何丟擲異常?
1.找到一個合適的異常類
2 建立這個異常的物件
3 丟擲物件
二 建立異常類
如果程式碼可能會遇到任何異常都無法描述的異常,則需要建立自己的異常類。
繼承已有的異常類即可,習慣做法是,自定義的這個類應該包含兩個構造器,無參構造器和一個字串引數的構造器,在toString方法中會直接輸出該字串
三 捕獲異常
如果遇到該程式碼不知道如何處理的異常通常丟擲到函式首部,交給呼叫者處理,如果在該方法中處理則使用try{}catch(Exception e){}語句環繞
notes:如果在覆蓋父類方法中出現了父類沒出現的普遍性異常,那麼必須用catch語句處理
四 再次丟擲異常和異常鏈
在需要異常型別轉換時可以使用,比如呼叫者只想知道是否發生了異常,而不關注細節,則可以建立一個更普遍的異常,丟擲。
也可以通過initCase(Exception obj)加入異常細節
五 try with resource
如果資源實現了AutoCloseable介面 可以使用try(Resource res =...){}自動關閉資源
在java9中可以try()括號中包含之前宣告的資源變數