switch (x) { case 1: …; case 2: …; case 3: … default: assert false:"x value is invalid: "+x; }
在私有函數計算前,檢查輸入參數是否有效;對于一私有些函數,要求輸入滿足一些特定的條件,那么我們可以在函數開始處使用assert進行參數檢查。對于公共函數,我們通常不使用assertion檢查,因為一般來說,公共函數必須對無效的參數進行檢查和處理。而私有函數往往是直接使用的。 例如:某函數可能要求輸入的參數必須不為null。那么我們可以在函數的一開始加上 assert parameter1!=null : "paramerter is null in test method"; 在函數計算后,檢查函數結果是否有效;對于一些計算函數,函數運行完成后,某些值需要保證一定的性質,因此我們可以通過assert檢查該值。 例如,我們有一個計算絕對值的函數,那么我們就可以在函數的結果處,加上一個語句:
assert value>=0:"Value should be bigger than 0:"+value; 通過這種方式,我們可以對函數計算完的結果進行檢查。 檢查程序不變量;有些程序中,存在一些不變量,在程序的運行生命周期,這些不變量的值都是不變的。這些不變量可能是一個簡單表達式,也可能是一個復雜的表達式。對于一些要害的不變量,我們可以通過assert進行檢查。 例如,在一個財會系統中,公司的支出和收入必須保持一定的平衡關系,因此我們可以編寫一個表達式檢查這種平衡關系,如下表示。
private boolean isBalance() { …… }
在這個系統中,在一些可能影響這種平衡關系的方法的前后,我們都可以加上assert驗證:assert isBalance():"balance is destoried";