用途:

assertion(斷言)在軟件開發中是一種常用的調試方式

在實現中,assertion就是在程序中的一條語句,它對一個boolean表達式進行檢查,一個正確程序必須保證這個boolean表達式的值為true;如果該值為false,說明程序已經處于不正確的狀態下,系統將給出警告或退出。一般來說,assertion用于保證程序最基本、關鍵的正確性。

assertion檢查通常在開發和測試時開啟。為了提高性能,在軟件發布后,assertion檢查通常是關閉的

 

通常來說,assertion用于檢查一些關鍵的值,并且這些值對整個程序,或者局部功能的完成有很大的影響,并且這種錯誤不容易恢復的。

 

在語法上,為了支持assertion,Java增加了一個關鍵字assert。它包括兩種表達式,分別如下:

1. assert exdivssion1;

2. assert exdivssion1: exdivssion2;

在兩種表達式中,exdivssion1表示一個boolean表達式,exdivssion2是斷言失敗時輸出的失敗消息的字符串。

如果Expression1為假,則拋出一個 AssertionError,這是一個錯誤(Error),而不是一個異常,也就是說是一個不可控制異常(unchecked  Exception),AssertionError由于是錯誤,所以可以不捕獲,但不推薦這樣做,因為那樣會使你的系統進入不穩定狀態。


二.啟用斷言

Eclipse: compiler1.4以上,run->Arguments->VM arguments 添加-ea參數

命令行:使用-ea選項

 

總結:

一般來說,assertion用于保證程序最基本、關鍵的正確性。

Java 斷言屬于運行時斷言,即可以在運行時通過選項決定打開還是關閉。

因為斷言可能被禁用,因此Java 斷言不能用于做業務邏輯的判斷。