断言在程序开发中的运用
2015-08-31 18:18
183 查看
完整工程代码放在我的github上:https://github.com/yjwwyygy/CrossPlatformLibrary
在程序开发中,经常会对一些错误进行处理,尤其是系统调用的返回值,一些致命或不应该出现的错误,如申请内存失败及其它系统错误,我们的程序应该做十分完备的处理,以达到程序的健壮性。
断言在C/C++开发中是一个有用的利器,运用的好,可以大大的节省修复BUG的时间,C++中有更好的解决方案--异常,但它有一定的复杂性,本着简单的事情简单做的原则,我使用断言来处理。
系统提供的断言错误信息太少,而且在其些编译器优化的情况下会被去掉,这里我自己定义一些断言处理,提供更详细的信息,主要处理以下错误:
(1)普通断言。用于一般的逻辑处理。
(2)errno样式的断言。一些系统调用出错返回-1,错误代码设置在全局变量errno中。
(3)POSIX样式的断言。POSIX标准的系统调用,出错时返回非0错误码。
(4)其它。如内存分配失败等。
整理好的代码如下:
在程序开发中,经常会对一些错误进行处理,尤其是系统调用的返回值,一些致命或不应该出现的错误,如申请内存失败及其它系统错误,我们的程序应该做十分完备的处理,以达到程序的健壮性。
断言在C/C++开发中是一个有用的利器,运用的好,可以大大的节省修复BUG的时间,C++中有更好的解决方案--异常,但它有一定的复杂性,本着简单的事情简单做的原则,我使用断言来处理。
系统提供的断言错误信息太少,而且在其些编译器优化的情况下会被去掉,这里我自己定义一些断言处理,提供更详细的信息,主要处理以下错误:
(1)普通断言。用于一般的逻辑处理。
(2)errno样式的断言。一些系统调用出错返回-1,错误代码设置在全局变量errno中。
(3)POSIX样式的断言。POSIX标准的系统调用,出错时返回非0错误码。
(4)其它。如内存分配失败等。
整理好的代码如下:
相关文章推荐
- 通用权限管理设计 之 数据库结构设计
- http状态码
- CURLOPT_TIMEOUT_MS之php版本支持
- 从源hbase集群中复制出HBase数据库表到本地目录
- 持续集成之戏说Check-in Dance(转)
- ftl中几个特殊的用法
- java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource解决方法
- libcurl get post http
- Charles
- Apache ZooKeeper 学习笔记
- poj3687 Labeling Balls 拓扑排序
- 将ueditor上传的视频转换为flowplayer播放,并隐藏其播放地址
- 2015年英语学习——8月
- BMP文件结构处理与显示
- shell积累
- matlab演绎笛卡尔的浪漫
- poj 1466 Girls and Boys(二分匹配之最大独立集)
- git 基本小用
- 解决xshell连接linux总是异常断开的问题?
- 字节对齐算法