當前位置:首頁 » 編程語言 » java的斷言

java的斷言

發布時間: 2023-06-02 03:33:46

Ⅰ 程序設計裡面的斷言是什麼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 = 1>2;
assert isOk;
System.out.println("程序正常");

}
因為 1>2 顯然是錯誤的,所以執行結果拋出異常:Exception in thread "main" java.lang.AssertionError
如果把 1>2 改為 1<2 則程序能順利執行,列印 「程序正常」
第 2 種使用方法:
public static void main(String[] args) {
boolean isOk = 1>2;
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

熱點內容
如何配置一台長久耐用的電腦 發布:2025-07-12 11:43:03 瀏覽:601
昆明桃源碼頭 發布:2025-07-12 11:38:45 瀏覽:568
大司馬腳本掛機 發布:2025-07-12 11:38:35 瀏覽:458
資料庫實時監控 發布:2025-07-12 11:31:33 瀏覽:743
vb6反編譯精靈 發布:2025-07-12 11:23:12 瀏覽:997
模擬存儲示波器 發布:2025-07-12 11:10:58 瀏覽:814
怎麼查看安卓真實運行內存 發布:2025-07-12 11:08:39 瀏覽:883
鏈接直接訪問 發布:2025-07-12 11:03:37 瀏覽:950
安卓如何把備忘錄轉為文檔 發布:2025-07-12 10:48:15 瀏覽:702
無法連接ftp主機 發布:2025-07-12 10:47:33 瀏覽:345