2011-11-28 53 views

回答

20

斷言通常僅在開發過程中使用,並在發佈模式下(由NS_BLOCK_ASSERTIONS控制)編譯出應用程序。另一方面,例外情況可以隨時使用。

當拋出一個異常時,它返回到調用鏈,直到它被捕獲(並被報告,忽略或引發另一個異常),或者到達頂端,在這種情況下,它會導致應用程序崩潰。它可以被認爲是類方法的一部分,需要記錄下來,這樣調用者才能正確處理。

斷言實際上是一個運行時開發人員檢查,確保某些事物(通常是實例變量)處於某種狀態,並且如果它不是那麼abort()以便將問題引入開發人員的注意力。這是一個開發人員的完整性檢查,以檢查是否有開發人員期望的狀態。

+0

謝謝。這將有所幫助 – Niraj

7

斷言用於發現在任何情況下都不會發生的事情,如果您的代碼按照您認爲應該的方式工作。如果發生這種情況,您的代碼中存在一個錯誤,並且您想知道它,至少在測試過程中發生錯誤。 (大多數人關閉已發佈代碼中的斷言。)

與此相反,異常用於查找發生錯誤的事情,而您無法控制這些事情。例如,如果您的應用程序依賴於數據庫服務器,並且該數據庫服務器不可用,則可能會在代碼中引發異常。 (不要犯使用異常的錯誤,如用戶輸入驗證,如果是正常的程序流程 - 用戶忘記輸入字段或其他內容 - 這不是例外,例外情況應該是例外。)

相關問題