此外,与发生错误时引发异常相比,它又如何呢?
最佳答案
VERIFY()
具有与ASSERT()
(或标准库assert()
)相同的目的-让您捕捉到真正不应该发生的事情(即,真正的代码错误,应在发行前修复)。如果由于某种原因该表达式为假,则这种事情没有意义继续下去,因为某些事情是可怕的,极其错误的。
这反射(reflect)在以下事实上:VERIFY()
仅在以Debug模式编译时以错误评估停止程序-在Release模式下,它是透明的。 VERIFY()
和ASSERT()
之间的区别在于VERIFY()
仍会在Release模式下评估表达式,它根本不在乎结果-而ASSERT()
在Release模式下编译时会从程序中完全删除,因此该表达式的任何副作用在其中不会发生。
异常对于可能会出错但可以从中恢复的事情更有用,因为异常可以由程序的其他部分处理。
关于c++ - VERIFY(...)是C++编码中的好习惯吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2642424/