虛幻C++斷言check / verify / ensure
斷言就是對(duì)一個(gè)表達(dá)式的判斷,若判斷結(jié)果為false,則輸出診斷消息并終止程序運(yùn)行。斷言可以提升程序的可讀性與安全性,在錯(cuò)誤發(fā)生時(shí),能夠及時(shí)終止行為,幫助程序員定位錯(cuò)誤。

虛幻引擎為我們提供assert等同項(xiàng)的三個(gè)不同族系:check / verify / ensure。
先附上文檔的內(nèi)容,然后我再用比較能看懂的話來解釋。

check(exp) 出現(xiàn)錯(cuò)誤時(shí),會(huì)終止程序,但不能確保exp(表達(dá)式)執(zhí)行。checkf(exp,TEXT(...))? 與前者的區(qū)別就是可以在第二個(gè)參數(shù)加入打印日志內(nèi)容。
checkNoEntry()檢測(cè)有沒有進(jìn)入函數(shù),一旦進(jìn)入就崩潰
checkNoReentry()檢測(cè)函數(shù)有沒有被執(zhí)行一次以上,超過一次就崩潰
checkNoRecursion()防止遞歸,無(wú)限循環(huán)

與check(exp)基本相同,不同之處在于它能保證exp一定執(zhí)行

ensure()阻斷,不崩潰
ensureMsgf()阻斷,不崩潰,打印額外信息
最后,如果引擎報(bào)觸發(fā)一個(gè)斷點(diǎn),要記得往上翻下日志,看看診斷。

(完)
標(biāo)簽: