java的斷言,java斷言使用場景

本文目錄一覽:

程序設計裡面的斷言是什麼???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-tw/n/183802.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-25 05:48
下一篇 2024-11-25 05:48

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Unity3D 創建沒有 Terrain Tile 的場景

    這篇文章將會介紹如何在 Unity3D 中創建一個沒有 Terrain Tile 的場景,同時也讓讀者了解如何通過編程實現這個功能。 一、基礎概念 在 Unity3D 中,Terr…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29

發表回復

登錄後才能評論