網站首頁 學習教育 IT科技 金融知識 旅遊規劃 生活小知識 家鄉美食 養生小知識 健身運動 美容百科 遊戲知識 綜合知識
當前位置:趣知科普吧 > IT科技 > 

-ea|java

欄目: IT科技 / 發佈於: / 人氣:1.11W

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

java -ea是什麼,讓我們一起了解一下?

java -ea是斷言中的一個參數,斷言在默認情況下是關閉的,要在編譯時啓用斷言,需要使用source1.4標記,既javac source1.4Test.java,在執行時啓用斷言需要使用 -ea參數 。

下面我們介紹一下斷言在JAVA中的使用是怎樣的,注意JAVA是從JDK1.4纔開始支援斷言的(添加了關鍵字assert),請注意老版的JRE不支援。

1、斷言概述

編寫代碼時,我們總是會做出一些假設,斷言就是用於在代碼中捕捉這些假設,可以將斷言看作是異常處理的一種進階形式,斷言表示爲一些布爾表達式,程序員相信在程序中的某個特定點該表達式值爲真,可以在任何時候啓用和禁用斷言驗證,因此可以在測試時啓用斷言而在部署時禁用斷言。同樣,程序投入執行後,最終用戶在遇到問題時可以重新起用斷言。使用斷言可以創建更穩定,品質更好且易於除錯的代碼,當需要在一個值爲FALSE時中斷當前操作的話,可以使用斷言單元測試必須使用斷言(Junit/JunitX)。

除了類型檢查和單元測試外,斷言還提供了一種確定個種特性是否在程序中得到維護的極好的方法,使用斷言使我們向按契約式設計更近了一部常見的斷言特性。

前置條件斷言:代碼執行之前必須具備的特性。

後置條件斷言:代碼執行之後必須具備的特性。

前後不變斷言:代碼執行前後不能變化的特性。

 

java -ea

2、斷言使用方式

斷言可以有兩種形式

1.assert Expression1

2.assert Expression1:Expression2

其中Expression1應該總是一個布爾值,Expression2是斷言失敗時輸出的失敗消息的字元串。如果Expression1爲假,則拋出一個 AssertionError,這是一個錯誤,而不是一個異常,也就是說是一個不可控制異常(unchecked Exception),AssertionError由於是錯誤,所以可以不捕獲,但不推薦這樣做,因爲那樣會使你的系統進入不穩定狀態。

3、起用斷言

斷言在默認情況下是關閉的,要在編譯時啓用斷言,需要使用source1.4標記 既javac source1.4 Test.java ,在執行時啓用斷言需要使用 -ea參數 。要在系統類中啓用和禁用斷言可以使用 -esa 和 -dsa參數。

例如:

public class AssertExampleOne{   public AssertExampleOne(){}   public static void main(String args[]){      int x=10;      System.out.println("Testing Assertion that x==100");      assert x=100;"Out assertion failed!";      System.out.println("Test passed!");   }}

如果編譯時未加 -source1.4,則編譯通不過,在執行時未加 -ea 時輸出爲:

Testing Assertion that x==100Test passed

jre忽略了斷言的代碼,而使用了該參數就會輸出爲:

Testing Assertion that x==100Exception in thread "main" java.lang.AssertionError: Out assertion failed!        at AssertExampleOne.main(AssertExampleOne.java:6)

 以上就是小編今天的分享了,希望可以幫助到大家。

Tags:java EA