本文目錄一覽:
程序設計裡面的斷言是什麼???Java裡面的assert,assert.h又是什麼???
(一)首先明確:
java斷言Assert是jdk1.4引入的。
jvm 斷言默認是關閉的。
斷言是可以局部開啟的,如:父類禁止斷言,而子類開啟斷言,所以一般說“斷言不具有繼承性”。
斷言只適用於複雜的調試過程。
斷言一般用於程序執行結果的判斷,千萬不要讓斷言處理業務流程。
(二)判斷eclipse是否開啟了斷言,代碼如下:
public class AssertTest {
public static void main(String[] args) {
boolean isOpen = false;
assert isOpen=true; //如果開啟了斷言,會將isOpen的值改為true
System.out.println(isOpen);//打印是否開啟了斷言
}
}
執行上面代碼,如果打印 true說明已經啟用了斷言,如果為 false 則沒有啟用斷言。
如果沒有啟用斷言,則按按照下面方法開啟斷言。
(三)eclipse中開啟斷言
選擇菜單:Run — Run… — 選擇 Arguments 選項卡
在 VM arguments 文本框中輸入: -ea 注意 中間沒有空格,如果輸入 -da 表示禁止斷言。
然後關閉該窗口,提示保存,然後保存就開啟了斷言。如下圖:
再次執行第二步操作,如果打印true,說明開啟斷言成功。
如果禁止斷言,則按第二步操作中,刪除 -ea 或者將 -ea 改為 -da 即可。
(四)斷言使用
第 1 種使用方法:
public static void main(String[] args) {
boolean isOk = 12;
assert isOk;
System.out.println(“程序正常”);
}
因為 12 顯然是錯誤的,所以執行結果拋出異常:Exception in thread “main” java.lang.AssertionError
如果把 12 改為 12 則程序能順利執行,打印 “程序正常”
第 2 種使用方法:
public static void main(String[] args) {
boolean isOk = 12;
try{
assert isOk : “程序錯誤”;
System.out.println(“程序正常”);
}catch(AssertionError err){
System.out.println(err.getMessage());
}
}
assert 後面跟個冒號表達式。如果冒號前為 true,則冒號後面的被忽略。
如果冒號前為false,則拋出AssertionError , 錯誤信息內容為冒號後面的內容,上面程序執行結果就是打印:”程序錯誤”
(五)有關斷言的更多參數:
-ea java -ea 打開所有用戶類的assertion
-da java -da 關閉所有用戶類的assertion
-ea:classname java -ea:MyClass1 打開MyClass1的assertion
-da:classname java -da: MyClass1 關閉MyClass1的assertion
-ea:packagename java -ea:pkg1 打開pkg1包的assertion
-da:packagename java -da:pkg1 關閉pkg1包的assertion
-ea:… java -ea:… 打開缺省包(無名包)的assertion
-da:… java -da:… 關閉缺省包(無名包)的assertion
-ea:packagename… java -ea:pkg1… 打開pkg1包和其子包的assertion
-da:packagename… java -da:pkg1… 關閉pkg1包和其子包的assertion
-esa java -esa 打開系統類的assertion
-dsa java -dsa 關閉系統類的assertion
綜合使用 java -dsa:MyClass1:pkg1 關閉MyClass1和pkg1包的assertion
java中assert什麼意思?
斷言一般用於程序不準備通過捕獲異常來處理的錯誤。
對於斷言語句:assert
num=0;
如果表達式num=0的值為真,程序繼續執行,否則程序立馬結束執行。
另外注意:調試程序的時候可以使用如下語句開啟斷言
java
-ea
例子名稱
拒絕抄襲、拒絕複製,希望能幫到你!
java中斷言是做什麼用的
編寫代碼時,我們總是會做出一些假設,斷言就是用於在代碼中捕捉這些假設
可以將斷言看作是異常處理的一種高級形式
斷言表示為一些布爾表達式,程序員相信在程序中的某個特定點該表達式值為真
可以在任何時候啟用和禁用斷言驗證,因此可以在測試時啟用斷言而在部署時禁用斷言。同樣,程序投入運行後,最終用戶在遇到問題時可以重新起用斷言。
使用斷言可以創建更穩定,品質更好且易於除錯的代碼
當需要在一個值為FALSE時中斷當前操作的話,可以使用斷言
單元測試必須使用斷言(Junit/JunitX)
除了類型檢查和單元測試外,斷言還提供了一種確定個種特性是否在程序中得到維護的極好的方法
使用斷言使我們向按契約式設計更近了一部
高級Java斷言的用途?
斷言是在Java1.4中引入的。它能讓驗證假設。如果斷言失敗(即返回false),就會拋出AssertionError(如果啟用斷言)。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/183802.html