小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

java斷言assert的使用

 燮羽 2010-10-29

一、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á)式,分別如下:

  1. assert expression1;
  2. assert expression1: expression2;

在兩種表達(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

 

Java代碼 
  1. public class AssertTest {  
  2.   
  3.     public static void main(String[] args) {  
  4.           
  5.         System.out.println("----start---");  
  6.           
  7.         int value=-1;     
  8.         assert 0 < value:"value="+value;   
  9.   
  10.         System.out.println("----end----");  
  11.     }  
  12.   
  13. }  

 輸出:

D:\java\editplus>javac -d . AssertTest.java

 

D:\java\editplus>java -enableassertions AssertTest
----start---
Exception in thread "main" java.lang.AssertionError: value=-1
        at AssertTest.main(AssertTest.java:8)

D:\java\editplus>

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多