首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

J2SE 1.4斷言功能詳細指南

     編輯:Java 程式設計入門

J2SE 1.4斷言功能詳細指南

J2SE 1.4在Java中引入了assertion(斷言)功能。最簡單的情形下,在Java代碼中任意一行可以寫入一條布爾表達式,在這一行代碼的最前面加上assert關鍵字,就可以實現這樣的功能:假如表達式為真,則代碼繼續執行;否則,拋出AssertionError異常。為了實現這項功能,在Java中新增加了assert關鍵字、AssertionError類,java.lang.ClassLoader中增加了幾個新的方法。

斷言語法

斷言語句有以下兩種合法形式:


assert expression1;
assert expression1 : expression2;

expression1是一條被判定的布爾表達式,必須保證在程序執行過程中它的值一定是真;expression2是可選的,用於在expression1為假時,傳遞給拋出的異常AssertionError的構造器。

啟用/禁用斷言

默認情況下斷言功能是關閉的。通過命令行參數控制:


# 啟用所有斷言
java -ea MyClass
java -enableassertions MyClass

# 禁用斷言
java -da MyClass
java -disableassertions MyClass

# 針對特定包/類
java -ea:com.myapp... MyClass
java -da:com.myapp... MyClass

斷言使用準則

最佳實踐

  • 用於內部不變量檢查,而非輸入驗證
  • 私有方法參數檢查可用斷言
  • 公共方法參數驗證應拋出異常
  • 不要替代正常的錯誤處理邏輯
  • 「有勝於無」:寧可多加斷言,不可缺失關鍵檢查

關鍵點總結

  • 斷言用於開發/調試階段,部署時可關閉
  • assert關鍵字後跟布爾表達式
  • expression2可選,用於構造AssertionError異常信息
  • 運行時通過-ea/-da參數控制啟用/禁用
  • 不替代正常的錯誤處理
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
應該使用的情形不應該使用的情形
保證內部數據結構正確不保證命令行參數正確
保證私有方法參數正確不保證公共方法參數正確
檢查方法結束時狀態不檢查外界對公共方法使用
檢查決不應該出現的狀態不保證用戶輸入正確性