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