我總是看到某種這一說法的變化:什麼時候應該使用if(!someVar)vs assert()?
if(!someVar)// or whatever expression
{
someVar = new type; //or however the programmer wants to handle it
}
中的代碼。我的問題是什麼時候應該有人青睞這種通過assert()檢查錯誤的方法?什麼是一些具體的例子?在我看來,assert()在大多數情況下可能是更安全的選擇,因爲您應該經常問自己,爲什麼首先將空或錯誤的值傳遞給變量。有鑑於此,您是否應該使用if(!expr)語句?
對於背景我在C++,並與報頭ASSERT.H具體工作。如果發生錯誤,
'斷言()'在調試版本並停止該程序僅執行。在發佈版本中不進行檢查。因此'assert()'用於完整性檢查,但不適用於程序邏輯。請參閱:https://stackoverflow.com/questions/1571340/what-is-the-assert-function – Galik