日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

eclipse 中断言使用的设定

發布時間:2023/11/27 62 豆豆
生活随笔 收集整理的這篇文章主要介紹了 eclipse 中断言使用的设定 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
JAVA是從JDK1.4才開始支持斷言的(添加了關鍵字assert) 選擇菜單"Windows"->"Perferences",在對話框中找到"Java"->"Complier"->"Compliance and Classfiles",把"Use default compliance settings"前的勾去掉,將下面的兩個選項均選為1.4即可。 附:斷言介紹

斷言使用方式


??斷言可以有兩種形式
??1.assert?Expression1
??2.assert?Expression1:Expression2
??其中Expression1應該總是一個布爾值,Expression2是斷言失敗時輸出的失敗消息的字符串。如果Expression1為假,則拋出一個?AssertionError,這是一個錯誤,而不是一個異常,也就是說是一個不可控制異常(unchecked?Exception),AssertionError由于是錯誤,所以可以不捕獲,但不推薦這樣做,因為那樣會使你的系統進入不穩定狀態。

起用斷言


??斷言在默認情況下是關閉的,要在編譯時啟用斷言,需要使用source1.4標記?既javac?source1.4?Test.java?,在運行時啟用斷言需要使用?-ea參數?。要在系統類中啟用和禁用斷言可以使用?-esa?和?-dsa參數。
??
例如:
?public?class?AssertExampleOne{
???public?AssertExampleOne(){}
???public?static?void?main(String?args[]){
??????int?x=10;
??????System.out.println("Testing?Assertion?that?x==100");
??????assert?x=100;"Out?assertion?failed!";
??????System.out.println("Test?passed!");
???}
}

如果編譯時未加?-source1.4,則編譯通不過
在執行時未加?-ea?時輸出為
Testing?Assertion?that?x==100
Test?passed
jre忽略了斷言的就代碼,而使用了該參數就會輸出為
Testing?Assertion?that?x==100
Exception?in?thread?"main"?java.lang.AssertionError:?Out?assertion?failed!
????????at?AssertExampleOne.main(AssertExampleOne.java:6)

斷言的副作用


??由于程序員的問題,斷言的使用可能會帶來副作用?,例如:
??boolean?isEnable=false;
??//...
??assert?isEnable=true;
??這個斷言的副作用是因為它修改了程序中變量的值并且未拋出錯誤,這樣的錯誤如果不細心的檢查是很難發現的。但是同時我們可以根據以上的副作用得到一個有用的特性,根據它來測試斷言是否打開。

?public?class?AssertExampleTwo{

???public?static?void?main(String?args[]){
?????boolean?isEnable=false;
?????//...
?????assert?isEnable=true;
?????if(isEnable==false){
???????throw?new?RuntimeException("Assertion?shoule?be?enable!");
?????}
???}
}

何時需要使用斷言

編寫代碼時,我們總是會做出一些假設,斷言就是用于在代碼中捕捉這些假設
??可以將斷言看作是異常處理的一種高級形式
??斷言表示為一些布爾表達式,程序員相信在程序中的某個特定點該表達式值為真
??可以在任何時候啟用和禁用斷言驗證,因此可以在測試時啟用斷言而在部署時禁用斷言。同樣,程序投入運行后,最終用戶在遇到問題時可以重新起用斷言。
??使用斷言可以創建更穩定,品質更好且易于除錯的代碼
??當需要在一個值為FALSE時中斷當前操作的話,可以使用斷言
??單元測試必須使用斷言(Junit/JunitX)
??除了類型檢查和單元測試外,斷言還提供了一種確定個種特性是否在程序中得到維護的極好的方法
??使用斷言使我們向按契約式設計更近了一部

??1.可以在預計正常情況下程序不會到達的地方放置斷言?:assert?false
??2.斷言可以用于檢查傳遞給私有方法的參數。(對于公有方法,因為是提供給外部的接口,所以必須在方法中有相應的參數檢驗才能保證代碼的健壯性)
??3.使用斷言測試方法執行的前置條件和后置條件
??4.使用斷言檢查類的不變狀態,確保任何情況下,某個變量的狀態必須滿足。(如age屬性應大于0小于某個合適值)

什么地方不要使用斷言


??斷言語句不是永遠會執行,可以屏蔽也可以啟用
因此:
??1.不要使用斷言作為公共方法的參數檢查,公共方法的參數永遠都要執行
??2.斷言語句不可以有任何邊界效應,不要使用斷言語句去修改變量和改變方法的返回值
?

轉載于:https://www.cnblogs.com/superch0054/archive/2006/09/29/4010193.html

總結

以上是生活随笔為你收集整理的eclipse 中断言使用的设定的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。