2011-03-23 64 views
2

我讀的斷言在java.i有材料,我也看過一些關於斷言的電子材料。但我無法得到主要的主題,爲什麼我們使用斷言,它會做什麼。任何人都可以解釋我一般發言?java中的斷言如何工作?

回答

3

在簡單的話

斷言主要用於測試的東西,在那裏你斷言[斷言:申報或莊嚴,正式作爲真正的肯定; 「在上帝面前,我發誓我是無辜的]的東西,如果它失敗,將引發AssertionError


更多

2

一個問題與調試程序發現有一個bug。

在內部,您可以始終檢查所有變量的狀態,但這樣做會很耗時,但如果沒有此類檢查,則您的內部狀態可能不會是您在任何給定時間的狀態,此時任何不正確的狀態都可能雪球並在晚些時候崩潰你的系統。

斷言允許您確保程序在開發過程中處於正確的狀態,如果不是(通過合理的消息告訴您爲什麼),將會發生HARD。

在發佈代碼中,assert語句不會執行,因此您不會減慢系統速度(此外,當它們位於真實用戶面前時,「儘早失敗,大聲失敗」可能不再是最好的策略,具體取決於應用

+0

你可以給了一句更多的解釋說:「斷言語句不執行,這樣,當他們在現實用戶面前你不拖慢系統的」 – satheesh 2011-03-23 06:58:24

+0

@satheesh有一個命令行(我相信--ea)啓用斷言。您應該在開發過程中使用此命令行選項,但在部署過程中您的客戶不會。沒有這個選項,斷言應該在加載時編譯出來,所以它們不存在。 – 2011-03-23 17:04:01