Symbian 断言_ASSERT_DEBUG和_ASSERT_ALWAYS
来源:互联网 发布:软件测试课程介绍 编辑:程序博客网 时间:2024/05/21 22:07
断言:被用来检测代码所作的假设是否正确,如果假设为假,就停止执行代码,也许还会显示一条消息。
断言并不是产生严重错误,而是允许你指定过程以供断言失败时调用。帮助侦测出无效状态或者是错误的程序逻辑。
当断言失败时,总是应该抛出一个严重错误。
一、_ASSERT_DEBUG
_ASSERT_DEBUG断言可以在开发的早期阶段加入,以强调程序错误,也可以等到维护和重构时加入,以验证代码行为符合“基于契约的设计”。
用例:
void CTestClass::TestValue(TInt aValue)
{
#ifdef _DEBUG
_LIT(KPanicDescriptor,"TestValue");
#endif
_ASSERT_DEBUG((aValue>=0),User::Panic(KPanicDescriptor,KErrArgument));
//如果条件为假,代码将被一个严重错误停止执行(使用Panic)。
...
}
有一个轻量级的,匿名的断言,它会调用隐藏的Panic:
ASSERT(aValue>=0);
二、_ASSERT_ALWAYS
在发布版本中使用,但不多,因为断言会中止代码执行,使库发生严重错误,应尽可能避免。
可以使用if语句来检测输入值,并在出错时返回错误代码。
针对调用代码的无效输入,使用防御性编码技术(if语句)来保护你的函数,_ASSERT_ALWAYS应该被用来保护只有调用者的bug(如数组下标越界)才能造成的非法输入。
- Symbian 断言_ASSERT_DEBUG和_ASSERT_ALWAYS
- 运行期断言和编译期断言
- c++29、断言和静态断言
- 了解异常和断言
- soapui断言和变量
- JUnit---(断言和注解)
- 断言NSAssert()和NSParameterAssert
- JUnit 断言和注解
- 异常和断言1
- 异常和断言2
- 异常和断言3
- 一个方便Symbian上调试的断言工具
- .NET 中的断言和跟踪
- .NET 中的断言和跟踪
- BUG,规范,断言和调试
- 错误码、异常和断言
- 异常和断言的区别
- 【面向对象】异常和断言
- 新手嵌入式要看的书
- 显示BMP文件
- 4.轮廓的边界框
- C#实现图像轮廓的查找、表达、绘制、特性及匹配
- 应用程序架构(Application Framework)
- Symbian 断言_ASSERT_DEBUG和_ASSERT_ALWAYS
- 企业应用快速开发平台推出的意义
- 报表制作工具图例展示之分组报表
- javaw.exe是什么进程?
- 利用android中的View来画线
- POJ-3070-Fibonacci-求Fibonacci的矩阵方法,O(log(n))
- linux 修改shell的执行文件路径
- 我xiang
- FMS3.5基于IIS的安装