首頁  >  文章  >  Java  >  Java斷言

Java斷言

WBOY
WBOY原創
2024-08-30 16:05:04819瀏覽

在Java中,斷言是確保或測試程式中所做假設的正確性的語句。這是在斷言語句的幫助下完成的。當書面假設被執行時,它被認為是正確的。如果為 false,Java 虛擬機器將拋出斷言錯誤。

開始您的免費軟體開發課程

網頁開發、程式語言、軟體測試及其他

使用斷言的主要原因是:

  • 確認無法存取的程式碼是否可達。
  • 檢查評論中的假設是否正確。
  • 確認一下,開關中的預設情況沒有達到。
  • 呼叫方法後。
  • 檢查物件的狀態。

文法

下面是 Java 斷言語句的語法。

assert expression;
assert expr1 : expr2;

可以根據需要使用任何這些語法。

Java 中斷言是如何運作的?

前面已經提到,assert 可以寫成兩種形式。

  • 語法斷言表達式;用於測試布林形式的表達式。如果特定表達式為 false,則程式將透過拋出 AssertionError 來終止。與正常異常不同,這些錯誤在運行時會停用。
  • 但是,語法斷言 expr1: expr2;它用於程式有一些額外資訊可以幫助診斷某些故障的情況。
  • 與 Java 中未捕獲的異常類似,斷言錯誤通常在堆疊追蹤中與檔案以及引發異常的行號一起標記。

儘管這些是斷言的主要優點,但在某些情況下不應使用斷言。他們是:

  • 錯誤訊息替換。
  • 公共方法中的參數檢查
  • 命令列參數。
注意:在編譯程式碼之前,請確保斷言已啟用。

文法

java –ea programname

java –enable assertions programname

使用 Eclipse Java 斷言的步驟

在 Eclipse 中,可以使用以下步驟完成。

第 1 步: 選擇運行配置。

Java斷言

第 2 步:前往左側面板並選擇 Java 應用程序,然後右鍵單擊它。

Java斷言

第 3 步:選擇新配置並在 VM 參數上鍵入 –ea。完成後,按一下。

Java斷言

類似地,可以使用下面給出的語法來停用斷言。 Java –da 程式名稱

實作 Java 斷言的範例

現在,讓我們看一些斷言的範例程序,以便清楚地了解它。

範例#1

檢查特定值是否大於 20 的 Java 程式。

代碼:

class AssertionExample{
public static void main( String args[] ){
int val = 14;
assert val>=20:" Value is not valid";
System.out.println("The given value is: "+ val);
}
}

輸出:

  • 執行程式碼時,會顯示訊息「給定值為 14」。

Java斷言

  • 可以清楚地看到這裡沒有檢查斷言,因為值大於20就不檢查。
  • 為了啟用斷言,必須在編譯前設定-ea。為此,請執行注意中提到的步驟。
  • 如果再次嘗試執行程式碼,可以清楚地看到拋出了 AssertionError,因為值小於 20。

Java斷言

範例#2

檢查特定使用者輸入值是否大於 20 的 Java 程式。

代碼:

import java.util.Scanner;
class AssertionExample{
public static void main( String args[] ){
Scanner <u>sc</u> = new Scanner( System.in );
System.out.print("Enter a number to check assertion ");
//store the input value to the variable <u>val</u>
int val = sc.nextInt();
//assertion check whether the input value is greater than 20
assert val>=20:" Value is not valid";
System.out.println("The given value is: "+ val);
}
}

輸出:

  • 執行程式碼時將要求使用者輸入一個數字。在下面的結果中,數字 13 作為輸入給出。由於小於 20,因此拋出了斷言錯誤。

Java斷言

  • 同時,當給出的值大於 20 時,不會拋出錯誤,並且會顯示訊息。

Java斷言

範例 #3

用來檢查一週中有多少天的 Java 程式。

代碼:

class AssertionExample {
//main method
public static void main(String args[]) {
//declare a string days
String[] days = {" Monday " , " Holiday " , " Saturday " , " Tuesday " , " Wednesday " , " Sunday " , " Thursday " , " Friday " };
//set the assertion as 7
assert days.length==7 : "7 days are present in a week, Your input is wrong";
//print the line below
System.out.println("There are " + days.length + "  days in a week");
}
}

輸出:

  • 執行程式碼時,會拋出斷言錯誤,因為一週的天數為 7,而給出的字串輸入包含更多內容。

Java斷言

  • 讓我們從輸入值中刪除 Holiday,看看輸出是什麼。

Java斷言

是的。當斷言值滿足輸入值時,將列印該行。

在 Java 中使用斷言的優點

以下是使用斷言的主要優點。

  • 有效偵測並糾正錯誤。
  • 樣板程式碼將被刪除,並有助於建立可讀的程式碼。
  • 執行時間不會受到影響,因為它會在運行時自動刪除。
  • 快速錯誤偵測與修正。
  • 程式碼最佳化和重構是為了正確運作而進行的。

除了上述幾點之外,以下是學習斷言時必須了解的要點。

  • Java 中的斷言是在 JDK 1.4 版本中引入的
  • Assert 是用來實作斷言的關鍵字。
  • 可以在運行時藉助對應語法來啟用和停用斷言。
  • 儘管斷言補充了異常,但它並不能取代異常。
  • 即使有助於條件驗證,它也不會取代單元測試。
  • 切勿使用斷言來驗證公用方法的參數或參數。

結論

Java 斷言是檢查特定條件的真實性的語句。它通常用於軟體開發過程中的測試。此外,它們與某些布林表達式一起使用。本文從斷言的語法、工作原理、優缺點、實例等幾個方面進行了詳細的講解。

以上是Java斷言的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:Java.net URI下一篇:Java.net URI