Java8基礎知識(七)斷言


斷言

當程序中使用大量的異常拋出來檢查變量的值是否符合規定時,檢測所使用的代碼會保留在程序中,積累這些測試代碼會導致程序越來越慢。

斷言機制可以在測試期間向代碼中插入檢查語句,當代碼發布時,這些語句能夠自動被移走。

斷言的語法形式如下:

// 當條件不成立時拋出AssertionError異常
assert condition;
// 當條件不成立時將表達式傳入AssertionError構造器,轉換成消息字符串,然后拋出異常
assert condition : expression;

啟用和禁用斷言

啟用或禁用斷言時類加載器的功能,不需要重新編譯程序,在運行程序時設置選項即可。

java -enableassertions MyApp

當斷言被禁用時,類加載器會跳過斷言代碼,為程序運行節省時間。

也可以在類甚至包中使用斷言。

java -ea:MyClass -ea:com.mycompany.mylib... MyApp

也可以選擇禁用某個特定類和包的斷言。

java -ea:... -da:MyClass MyApp

對於沒有類加載器的系統類,使用-enablesystemassertions-esa開關啟用斷言。

參數檢查

對於文檔中不拋出異常的參數約定,應當使用斷言來判斷其符合條件,這種約定稱為前置條件

文檔假設

如果使用注釋來說明假設的前置條件,應當用斷言來代替。這樣當違反假設時可以直接拋出異常。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM