天天看點

Assertion斷言學習assertion主要形式:assertion主要用途:assertion的代價:

斷言:在開發階段的代碼中嵌入,檢驗某些“假設”是否 成立。若成立,表明程式運作正常,否則表明存在錯誤。

assertion主要形式:

– assert condition;

– assert condition : message;

eg:

assert (number >= 0) : "number is negative: " + number;

assert x >= 0 : “x is ” + x;

assert後括号中的布爾表達式為false時,會抛出一個AssertionError錯誤。

括号可省

assert x >= 0 : “x is ” + x;

assertion主要用途:

1.内部不變量,檢測變量值。

2.表示不變量,checkRep()每次執行一個方法前後都要運作一次。

3控制流不變量,switch中的defaultcase可用assertion終止。

如果不想被關閉用throw new AssertionError(msg);

4方法前置條件

5方法後置條件

assertion的代價:

1.斷言主要用于開發階段,避免引入 和幫助發現bug,實際運作階段, 不再使用斷言,避免降低性能。使用斷言的主要目的是 為了在開發階段調試程式、盡快避免錯誤

java預設關閉斷言,用-ea打開

Assertion斷言學習assertion主要形式:assertion主要用途:assertion的代價:

2.用在刀刃上檢查,不要檢測能明顯看出成立的表達式。

3.assertion可以被停用,是以不要在assertion中進行操作

Assertion斷言學習assertion主要形式:assertion主要用途:assertion的代價:

4.程式之外的外部錯誤咱管不了,也管不着

5.用斷言處理絕不應當發生的情況