assert boolean 表示式 : 詳細資訊
以上程式碼中,boolean 表示式的結果為 true,則會忽略後面的詳細資訊;如果為 false,則提示的錯誤內容為詳細資訊;如果沒有宣告詳細資訊的描述,則系統會使用預設的錯誤資訊提示方式。public static void main(String[] args) { // 定義一個陣列,長度為3 int x[] = { 1, 2, 3 }; // 此處斷言陣列長度為0,肯定是錯誤的 assert x.length == 0; }以上程式中,語句
assert x.length == 0;
即為斷言,斷言條件x.length == 0
預期為 true。如果計算結果為 false,則斷言失敗,丟擲 AssertionError。由於陣列 x 的長度是不可能為 0 的,所以,此處的斷言結果是錯誤的。-enableassertions
引數,可以簡寫為-ea
。
編譯程式:javac Test.java
驗證程式:java -ea Test
Exception in thread "main" java.lang.AssertionError at Test.main(Test.java:6)
public static void main(String[] args) { // 定義一個陣列,長度為3 int x[] = { 1, 2, 3 }; // 此處斷言陣列長度為0,肯定是錯誤的 assert x.length == 0 : "陣列長度不為0"; }再次驗證斷言,出現以下資訊:
Exception in thread "main" java.lang.AssertionError:陣列長度不為0
at Test.main(Test.java:6)