斷言在軟件開發中是一種常用的調試方式,很多開發語言中都支持這種機制。一
般來說,斷言用於保證程序最基本、關鍵的正確性。斷言檢查通常在開發和測試
時開啟。為了保證程序的執行效率,在軟件發布后斷言檢查通常是關閉的。斷言
是一個包含布爾表達式的語句,在執行這個語句時假定該表達式為 true;如果表
達式的值為 false,那么系統會報告一個 AssertionError。斷言的使用如下面的代
碼所示:assert(a > 0); // throws an AssertionError if a <= 0
斷言可以有兩種形式:
assert Expression1;
assert Expression1 : Expression2 ;
Expression1 應該總是產生一個布爾值。
Expression2 可以是得出一個值的任意表達式;這個值用於生成顯示更多調試信
息的字符串消息。
要在運行時啟用斷言,可以在啟動 JVM 時使用-enableassertions 或者-ea 標記。
要在運行時選擇禁用斷言,可以在啟動 JVM 時使用-da 或者-disableassertions
標記。要在系統類中啟用或禁用斷言,可使用-esa 或-dsa 標記。還可以在包的基
礎上啟用或者禁用斷言。
注意:斷言不應該以任何方式改變程序的狀態。簡單的說,如果希望在不滿足某
些條件時阻止代碼的執行,就可以考慮用斷言來阻止它。