我总是看到某种这一说法的变化:什么时候应该使用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