Java中的斷言是什麼? 如何在 Java 中使用斷言

已發表: 2021-05-20

目錄

Java中的斷言是什麼?

Java中的斷言用於確保任何程序假設的正確性,因為斷言在執行時被假設為真。 如果斷言為假,Java 虛擬機將拋出名為 AssertionError 的錯誤。 Java 中的斷言主要用於測試目的。 布爾表達式與斷言語句一起使用。 斷言是一個語句,'asset' 關鍵字用於在 Java 中執行斷言。

句法

以下是在 Java 中執行斷言的兩種方式:

1.斷言表達式;

2.斷言表達式1:表達式2;

如何在 Java 中使用斷言?

默認情況下,Java 中禁用斷言。 以下命令用於啟用它們:

java -ea 測試

(要么)

java -enableassertions 測試

其中 Test 是 Java 文件的名稱。

下面是一個演示斷言語法的示例:

公開課測試

{

公共靜態無效主要(字符串 [] 參數)

{

整數值 = 13;

斷言值<= 12:“不是青少年”;

System.out.println(“少年的年齡是” + value);

}

}

輸出

這是 Java 虛擬機生成斷言錯誤的示例 -

類測試

{

公共靜態無效主要(字符串參數[])

{

整數重量 = 30;

斷言重量> = 20:“超重”;

System.out.println(“權重為”+value);

}

}

輸出

啟用斷言後,

輸出

線程“主”java.lang.AssertionError 中的異常:超重

這是它的樣子:

資源

為什麼使用斷言?

Java中斷言用於:

  • 檢查程序員所做的假設是否正確。
  • 確保如果代碼看起來無法訪問,則它是無法訪問的。
  • 確認註釋中的假設是正確的,例如:

如果 ((y & 1) == 1)

{ }

else // y 必須是偶數

{ 斷言 (y % 2 == 0); }

  • 確保未達到默認開關盒
  • 檢查對象的狀態

Java 中的斷言用於方法的開頭和方法調用之後。

在哪裡使用斷言?

Java 中的斷言用於條件情況以及條件位於任何方法的開頭時。 此外,對於私有方法的參數。 開發人員的代碼提供了私有參數,並且當程序員需要檢查他/她對參數的假設時。

以下是一些應避免使用斷言的情況:

  1. 根據 Sun Microsystems 給出的規範,在檢查公共方法中的參數時不應使用斷言,因為這會導致適當的運行時異常,例如 NullPointerException 和 IllegalArgumentException。
  2. 它不應用作錯誤消息的替代品。
  3. 如果您不希望在任何情況下出現任何錯誤,請跳過使用斷言。
  4. 它不應該用於命令行參數。
  5. 如果用戶提供錯誤,則不應使用斷言來檢查公共方法中的參數。 相反,應該使用錯誤處理。

如何禁用斷言?

以下命令用於禁用Java 中的斷言:

java –da測試

要么

java - 禁用斷言測試

其中 Test 是 Java 文件的名稱。

在 Java 中使用斷言的方法

示例 1:Java 斷言

公共類主要{

公共靜態無效主要(字符串參數[]){

String[] weekdays = {“週一”、“週二”、“週三”、“週四”、“週五”};

斷言 weekdays.length == 2;

System.out.println(“一周有 ” + weekdays.length + ” weekdays”);

}

}

輸出

當斷言被禁用並且程序沒有編譯錯誤時,將實現以下輸出。

啟用斷言後,我們將獲得以下輸出:

線程“main”中的異常 java.lang.AssertionError

還有另一種形式的斷言語句,如下所示:

斷言條件:表達式;

這種形式的斷言語句具有傳遞給 AssertionError 對象的構造函數的表達式。 如果條件為假,則此表達式的值顯示為錯誤的詳細消息。 為了幫助調試問題,詳細的按摩捕獲並傳輸斷言失敗信息。

示例 2:帶有表達式示例的 Java 斷言

公共類主要{

公共靜態無效主要(字符串參數[]){

String[] weekdays = {“週一”、“週二”、“週三”、“週四”、“週五”、“週六”};

assert weekdays.length == 5: “一周只有 5 個工作日”;;

System.out.println(“一周有 ” + weekdays.length + ” weekdays”);

}

}

輸出

線程“main”中的異常 java.lang.AssertionError:一周只有 5 個週末

如上例所示,表達式被傳遞給 AssertionError 對象的構造函數。 由於啟用了斷言並且假設為假,因此在引發異常時會顯示適當的消息。 該消息有助於診斷和修復導致斷言失敗的錯誤。

從世界頂級大學在線學習軟件工程課程獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。

結論

在本博客中,您學習瞭如何使用斷言來測試程序邏輯。 您還了解了為什麼斷言不能用作異常的替代品,並且您已經看到使用異常比異常處理更有效的情況。

如果您希望了解有關 Java 的更多信息並在您的編程生涯中升職,請探索印度最大的在線高等教育公司 upGrad 提供的免費 Java 在線課程。 訪問upGrad了解更多信息。

如果您有興趣了解有關 Java 全棧軟件開發的更多信息,請查看 upGrad 和 IIIT-B 的全棧軟件開發執行 PG 計劃,該計劃專為工作專業人士設計,提供 500 多個小時的嚴格培訓,9+項目和任務、IIIT-B 校友身份、實用的實踐頂點項目和頂級公司的工作協助。

Java中的斷言是什麼?

在 Java 編程語言中,斷言是一種用於確保應遵循某些要求的方法。 Java中的斷言失敗被認為是編譯錯誤,即如果你的代碼中有任何斷言,代碼將不會被編譯,你會得到錯誤信息。 Java 的這一特性使您能夠保護您的代碼免受意外或不需要的運行時錯誤的影響。 Java assert 語句允許您在運行時測試程序的不變量。 斷言通常用於檢查代碼是否沒有進入無效狀態。 在其他語言中,您可能會看到用於此目的的合同方法或前置/後置條件。

如何處理 Java 中的異常?

異常是運行時錯誤,這意味著它發生在程序運行時,而不是在編譯期間。 當發生錯誤並且程序無法繼續時,將引發異常。 您可以通過三種不同的方式處理異常: 忽略異常並允許程序退出。 使用 throw 關鍵字重新引發異常。 使用 try-catch 塊來處理異常。 您可以記錄或打印異常,然後讓程序退出。 您可以使用 exit 關鍵字來終止程序。 您可以使用 throw 關鍵字重新引發異常。 您可以使用 try-catch 塊來處理異常。 有一個 catch 塊在其參數中接受異常。 無論是否拋出異常,都有一個 finally 塊運行。

Java 中的 try-catch 是如何工作的?

try-catch 是 Java 中的一種機制,它允許您定義一個範圍,您可以在其中以受控方式處理運行時錯誤。 它還確保遇到錯誤時執行流程不會完全停止。 try 和 catch 是用於實現異常處理的兩個關鍵字。 每當程序中發生錯誤時,都會執行 try 塊,然後由 catch 塊處理錯誤。