所謂斷言(assertion)是一個Java語句,布林運算式,程式員認為在程式執行時該運算式的值應該為true。系統通過計算該布林運算式執行斷言,若該運算式為false系統會報告一個錯誤。
斷言是通過assert關鍵字來聲明的,斷言功能的使用有兩種格式:
assert expression ; 或者 assert expression : detailMessage ;
其中,expression為布林運算式,detailMessage是基礎資料型別 (Elementary Data Type)或Object類型的值。當Assert 陳述式被執行時,Java計算expression的值,如果其值為false,拋出AssertionError異常。對於第二種帶有一個詳細資料的Assert 陳述式,將使用AssertionError類的與訊息的資料類型匹配的構造方法。由於AssertionError類是Error類的子類,當斷言為false時,程式將在控制台顯示一條訊息並終止程式的執行。
Eclipse預設是沒有開啟斷言功能的,所以你使用斷言也不會看到效果的,首先我們用以下步驟開啟斷言的開關:
在MyEclipse中
Windows--> Preferences--->Java--->Installed JREs--->點擊正使用的JDK--->Edit--->
Default VM Arguments文字框中輸入:-ea
如
開啟之後,用下面的代碼進行測試:
public class AseertTest { public boolean flag = true;// 改變flag值然後查看控制台輸出 public boolean isValid(){ return flag; } public static void main(String args[]){ AseertTest assertion = new AseertTest(); assert assertion.isValid() : "Flag must be true!"; System.out.println("assert end"); }}
更改flag的值為false,使條件無法測試通過,這時就會拋出如下異常,也就說明斷言已經起作用了。