恰当使用断言

断言assert 是仅在Debug 版本起作用的宏,它用于检查“不应该”发生的情况。 断言用来检测调用者(程序员)的调用合理性,如输入参数,输出参数等,而不是用来检测执行时的错误。对于内存分配失败,文件句柄和其他运行错误不事宜用断言,应该采用异常机制来进行处理。

断言是用来发现运行时刻错误的,发现的错误是关于程序实现方面的。
断言中的布尔表达式显示的是某个对象或者状态的有效性而不是正确性。
断言在条件编译后只存在于调试版本中,而不是发布版本里。
断言不能包含程序代码。
断言是为了给程序员而不是用户提供信息。

另外尽量避免使用或定义类似MFC中的VERITY(),它准入在发行版中调用代码

在使用断言时常犯的错误:

char *dup(const char* s )

{

       char *s_copy=(char*)malloc(1+strlen(s));

      assert(NULL!=s_copy);

      return strcpy(s_copy,s);

}

Excpeion c++

高质量c++

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值