斷言娇昙,常用于調(diào)試程序,生產(chǎn)環(huán)境不適用(影響性能)笤妙,用于防御式編程冒掌。
語法:
assert <布爾表達(dá)式>
assert<布爾表達(dá)式>:<錯(cuò)誤信息>
當(dāng)布爾為假時(shí),拋出AsserttionError危喉,并附帶錯(cuò)誤信息宋渔。
2個(gè)特性:
1:assert 默認(rèn)是不啟用的(要啟用需添加關(guān)鍵字)
2:assert 拋出的異常是AssertionError錯(cuò)誤,繼承自Error辜限,是不可恢復(fù)的,表示為嚴(yán)重問題严蓖。
注意:assert 不能等價(jià)于if else薄嫡。
2種情況不可使用:
1:對外公開的方法中氧急。(強(qiáng)契約)
2:在執(zhí)行邏輯代碼的情況下。
3種情況可使用:
1:在私有方法中放置assert(弱契約毫深,校驗(yàn)作者自己)作為輸入?yún)?shù)的校驗(yàn)
2:流程控制中不可能達(dá)到的區(qū)域吩坝,(即:執(zhí)行到此處是錯(cuò)誤的)。
3:建立程序探針:斷言某個(gè)變量的關(guān)系哑蔫,如果不滿足钉寝,即表明程序出現(xiàn)了異常,業(yè)務(wù)沒必要進(jìn)行下去了闸迷。
Eclipse默認(rèn)關(guān)閉斷言嵌纲。