淺析Java異常處置中止言的應用。本站提示廣大學習愛好者:(淺析Java異常處置中止言的應用)文章只能為提供參考,不一定能成為您想要的結果。以下是淺析Java異常處置中止言的應用正文
斷言的概念
斷言用於證實和測試法式的假定,好比“這裡的值年夜於 5”。
斷言可以在運轉時從代碼中完整刪除,所以對代碼的運轉速度沒有影響。
斷言的應用
斷言有兩種辦法:
一種是 assert<<布爾表達式>> ;
另外一種是 assert<<布爾表達式>> :<<細節描寫>>。
假如布爾表達式的值為false , 將拋出AssertionError 異常; 細節描寫是AssertionError異常的描寫文本應用 javac –source 1.4 MyClass.java 的方法停止編譯示例以下:
public class AssertExample { public static void main(String[] args) { int x = 10; if (args.length > 0) { try { x = Integer.parseInt(args[0]); } catch (NumberFormatException nfe) { /* Ignore */ } } System.out.println("Testing assertion that x == 10"); assert x == 10 : "Our assertion failed"; System.out.println("Test passed"); } }
因為引入了一個新的症結字,所以在編譯的時刻就須要增長額定的參數,要編譯勝利,必需應用 JDK1.4 的 javac 並加上參數'-source 1.4',例如可使用以下的敕令編譯下面的代碼:
javac -source 1.4 AssertExample.java
以上法式運轉應用斷言功效也須要應用額定的參數(而且須要一個數字的敕令行參數),例如:
java -ea AssertExample 1
法式的輸入為:
Testing assertion that x == 10 Exception in thread "main" java.lang.AssertionError:Our assertion failed at AssertExample.main(AssertExample.java:20)
因為輸出的參數不等於 10,是以斷言功效使得法式運轉時拋出斷言毛病,留意是毛病, 這意味著法式產生嚴重毛病而且將強迫加入。斷言應用 boolean 值,假如其值不為 true 則 拋出 AssertionError 並終止法式的運轉。
斷言推舉應用辦法
用於驗證辦法中的外部邏輯,包含:
留意:不推舉用於私有辦法內的前置前提的檢討。
運轉時屏障斷言
運轉時要屏障斷言,可以用以下辦法:
java –disableassertions 或 java –da 類名
運轉時要許可斷言,可以用以下辦法:
java –enableassertions 或 java –ea類名