25 | 基礎篇:Linux 磁碟I/O是怎麼工作的(下)
Java中的對於程式的異常分為兩種情況:
- 錯誤(Error)
- 異常(Exception)
Error:錯誤通常是系統級別的問題
Exception:異常通常是程式再執行期間,或則編譯期間由編譯器丟擲的一些可以被程式設計師處理的程式碼上的問題
Throwable
Throwable是Java中錯誤和異常的頂級父類,以下是Throwable和Error,Exception之間的關係
Java中的所有錯誤從Error類繼承,並且絕大多數類名稱字尾以Error結尾,而異常則從Exception類繼承,都是以Exception作為字尾結尾。
異常概論
異常一般分為兩種型別:
- 執行時異常(RuntimeException)
- 檢測異常
執行時的常見異常
檢查異常
異常的處理分為:
- 異常丟擲
- 異常捕獲
異常的丟擲
丟擲的方式:
3. throws:用於方法的宣告中,丟擲有可能出現的異常
語法:
- throw:用於語句塊中,丟擲指定型別的異常物件,throw一旦執行,則一定會出現該型別異常
- 語法:
注意事項:
- 父類方法未丟擲任何異常情況下,子類只能丟擲執行時異常。
- 遊離快和靜態語句塊中不能丟擲任何異常,因為外界無法直接呼叫這兩種語句塊
異常的捕獲
語法:
自定義異常
自定義異常都是對現有的異常類進行擴充套件,常見的方式比如:繼承Exception,宣告一個無參的構造器或則自己創造一個滿足自己需求的構造器,異常的定義通常用於標記程式執行時的異常情況,並不需要在異常中進行任何的業務邏輯處理,因此自定義異常中也無需定義任何的方法。
案例:
常用類
BigDecimal與DecimalFormat
BigDecimal
java.math.BigDecimal類從java.math.Number類繼承而來,用於表示精度較高的數值型別的封裝型別,一般用於精度要求較高的程式中,比如銀行賬戶的金額屬性,
建議:
在涉及到一些敏感的浮點數運算時,不適合直接使用float和double,精度丟失。
常見構造器:
- java.math.BigDecimal(String s)
- java.math.BigDecimal(double d)
- java.math.BigDecimal(long l)
- Java.math.BigDecimal(int i)
常見方法:
- add(BigDecimal b):與另一個BigDecimal執行相加運算
- subtract(BigDecimal b):與另一個BigDecimal執行相減運算
- multiply(BigDecimal b):與另一個BigDecimal執行相乘運算
- divide(BigDecimal b):與另一個BigDecimal執行相除運算
NumberFormat & DecimalFormat
java.text.NumberFormat
和java.text.DecimalFormat
是用於進行數值格式化的類,可以對數值的顯示位數進行格式化處理,以及對浮點數進行金額或者百分比的格式表現;DecimalFormat是NumberFormat的子類。
java.text.NumberFormat
是一個抽象類,內部提供了幾個靜態方法用於直接獲取NumberFormat物件,而這些靜態方法的實現通過java.text.DecimalFormat
實現。
Objects類
Object類是所有java類的頂層父類(祖宗類),但是Objects是從Java7開始新增的一個對於java物件進行空指標安全操作的工具類
- Objects類是一個工具類
- Objects對外不提供構造器,因此無法建立物件
- Objects類中的所有方法都是static
- 提供的是對於物件的空指標安全操作的方法
Random類
Math類中提供了一個random()
的方法,用於隨機一個從0.0~1.0之間的浮點數,當實際需求有個性化的要求時,只能通過計算獲取其他型別的隨機數,實際操作相對比較麻煩;因此,Java中還提供了另一個專門用於生成各種需求的隨機數型別,比如,隨機整數,隨機浮點數,隨機布林值。
File類
File類是來自於java.io
包中的一個用於處理本機作業系統中的檔案,檔案可以是目錄也可以是一個標準檔案;File類是用於在Java中實現跟本機檔案系統進行關聯的操作類。其中包含一些常見的檔案操作:建立檔案/目錄,檢視檔案的狀態,刪除檔案等。