此外,与发生错误时引发异常相比,它又如何呢?

最佳答案

VERIFY()具有与ASSERT()(或标准库assert())相同的目的-让您捕捉到真正不应该发生的事情(即,真正的代码错误,应在发行前修复)。如果由于某种原因该表达式为假,则这种事情没有意义继续下去,因为某些事情是可怕的,极其错误的。

这反射(reflect)在以下事实上:VERIFY()仅在以Debug模式编译时以错误评估停止程序-在Release模式下,它是透明的。 VERIFY()ASSERT()之间的区别在于VERIFY()仍会在Release模式下评估表达式,它根本不在乎结果-而ASSERT()在Release模式下编译时会从程序中完全删除,因此该表达式的任何副作用在其中不会发生。

异常对于可能会出错但可以从中恢复的事情更有用,因为异常可以由程序的其他部分处理。

关于c++ - VERIFY(...)是C++编码中的好习惯吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2642424/

10-14 11:01