斷言是被用來檢查非法情況而不是錯誤情況,即在該程式正常工作時絕不應該發生的非法情況,用來幫助開發人員對問題的快速定位。異常處理用於對程式發生異常情況的處理,增強程式的健壯性、容錯性,減少程式使用中對使用者不有好的行為,不讓(通常也不必)使用者知道發生了什麼錯誤。
通常在unity開發過程中,經常有一堆外部引數需要配置,但是總會有時候忘記配置一部分引數,這個時候執行起來就會報錯。稍微好點的做法是在**中寫
if(*** == null)
debug.log("******");
然後再把引數傳遞進入,再執行,好了不報錯了。但是如果需要判斷的內容很多就需要寫很多if判斷。這樣效率十分低下,有沒有辦法在不執行的情況下檢查引數有沒有配置完全呢。
答案是有的,使用 onvalidate()。然後使用unity自帶的assert類就可以避免**裡面寫一大堆if。assert裡面還有很多有用的api。
寫上圖中**後。可以看到在不執行的時候控制台就會報錯。這點對策劃來說非常友好。
使用斷言可以大幅提高安全性和穩定性。在出錯的時候可以快速定位。也免去了寫一大堆debug的煩惱。關鍵是寫debug後期免不了進行刪除。因為大量的debug是很消耗gc的。程式中要盡量少使用字串相關的東西。
防禦性程式設計之一 斷言assert
1,典型assert 的實現.ifdef ndebug define assert cond void 0 else 觸發表示式,檔名和行號 void assertimpl const char,const char,long define assert cond cond void 0 asser...
python程式設計之logging模組的使用
程式設計中,很多時候我們需要儲存乙個程式的中間輸出,要了解乙個程式的運 況,記錄程式執行中在一些關鍵節點處的資訊,以便我們後續進行分析和問題的排查。對於簡單的應用和相對不那麼複雜的程式,我們當然可以通過最常用的print來實現這些需求,無論是輸出到控制台還是重定向到磁碟檔案。但是一旦程式的功能性和複...
防禦式程式設計,避免預期之外的錯誤
防禦式程式設計 對輸入的可能性考慮周到,避免預期之外的錯誤導致程式崩潰。措施 1.對輸入進行檢查 1 檢查輸入源 檔案,網路,控制台 資料的合法性。2 檢查每乙個函式輸入引數的合法性。2.對非預期錯誤使用斷言 1 空指標 2 輸入或輸出引數的值不再預期範圍內 3 陣列越界 斷言 include as...