测试错误条件
本主题适用于:
版本 |
Visual Basic |
C# |
F# |
C++ |
Web Developer |
---|---|---|---|---|---|
学习版 |
仅限本机 |
||||
专业版、高级专业版和旗舰版 |
仅限本机 |
可以使用断言在代码中应已处理了所有错误的点处测试错误条件。 在下面的示例中,一个图形例程将返回错误代码,或返回零表示成功。
myErr = myGraphRoutine(a, b);
/* Code to handle errors and
reset myErr if successful */
ASSERT(!myErr); -- MFC version
_ASSERT(!myErr); -- CRT version
如果错误处理代码工作正确,在到达断言之前应已处理错误并将 myErr 重置为零。 如果 myErr 具有其他值,则断言失败,程序暂停,并且显示 “断言失败”对话框。
但是断言语句不是错误处理代码的替代物。 下面的示例显示会在最终发布代码中导致问题的断言语句:
myErr = myGraphRoutine(a, b);
/* No Code to handle errors */
ASSERT(!myErr); // Don't do this!
_ASSERT(!myErr); // Don't do this, either!
这段代码依赖断言语句来处理错误条件。 结果,myGraphRoutine 返回的所有错误代码都未在最终发布代码中予以处理。