测试错误条件

更新:2007 年 11 月

本主题适用于:

版本

Visual Basic

C#

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 返回的所有错误代码都未在最终发布代码中予以处理。

请参见

概念

结果检查

捕捉逻辑错误

断言