| 一、assert的開啟和關(guān)閉 因?yàn)镴VM默認(rèn)是不啟動assert的。因此,你可以使用標(biāo)記 –enableassertions ( 縮寫 -ea ) 來開啟斷言功能。同樣,你也可以使用標(biāo)記 –disableassertions ( 縮寫 -da ) 來關(guān)閉斷言功能。例: java - enableassertions AssertTest  二、assert的使用 
 
 在語法上,為了支持assertion,Java增加了一個(gè)關(guān)鍵字assert。它包括兩種表達(dá)式,分別如下: 
 在兩種表達(dá)式中,expression1表示一個(gè)boolean表達(dá)式,expression2表示一個(gè)基本類型或者是一個(gè)對象(Object) ,基本類型包括boolean,char,double,float,int和long。由于所有類都為Object的子類,因此這個(gè)參數(shù)可以用于所有對象。 1、assert <boolean表達(dá)式>       如果<boolean表達(dá)式>為true,則程序繼續(xù)執(zhí)行。       如果為false,則程序拋出AssertionError,并終止執(zhí)行。 2、assert <boolean表達(dá)式> : <錯誤信息表達(dá)式>       如果<boolean表達(dá)式>為true,則程序繼續(xù)執(zhí)行。       如果為false,則程序拋出java.lang.AssertionError,并輸出<錯誤信息表達(dá)式>。 
 1.assert true/false;當(dāng)為false時(shí),拋出錯誤,結(jié)束程序 2.assert true/false : "error info";當(dāng)為false時(shí),拋出錯誤,結(jié)束程序,并輸出提示信息"error info" 
 語義含義 
 在運(yùn)行時(shí),如果關(guān)閉了assertion功能,這些語句將不起任何作用。如果打開了assertion功能,那么expression1的值將被計(jì)算,如果它的值為false,該語句強(qiáng)拋出一個(gè)AssertionError對象。如果assertion語句包括expression2參數(shù),程序?qū)⒂?jì)算出expression2的結(jié)果,然后將這個(gè)結(jié)果作為AssertionError的構(gòu)造函數(shù)的參數(shù),來創(chuàng)建AssertionError對象,并拋出該對象;如果expression1值為true,expression2將不被計(jì)算。 一種特殊情況是,如果在計(jì)算表達(dá)式時(shí),表達(dá)式本身拋出Exception,那么assert將停止運(yùn)行,而拋出這個(gè)Exception。 
 
 
 三、兼容 JDK 1.4 的默認(rèn)編譯模式并不支持?jǐn)嘌?,因此它的編譯需要: javac -source 1.4 Assert.java 
 
 輸出: D:\java\editplus>javac -d . AssertTest.java 
 D:\java\editplus>java -enableassertions AssertTest D:\java\editplus> | 
|  |