我的c++异常编码规范

 
一、在c++模块内部用异常而不是用返回值来报告错误;
二、不要让c++异常穿越模块边界(标准的动态库,传统的导出c函数的那种);
三、异常作为precondition的check比assert优秀,所以不要使用assert检查不变式(检测逻辑错误);
四、返回值是很有用的传值通道,如非必要(比如说跨越模块边界)还是用异常来抛出错误(返回非逻辑错误);
五、逻辑错误是可以避免和调试改正的,由于疏忽大意或者不看接口规范而抛出的异常时我们修改bug的贤内助,所以请不要捕获这种异常(除非你故意与函数作者作对这另当别论);
六、除去前置条件外,函数抛出异常时是由于它无法完成它声明的契约功能,所以当你不清怎么处理这个异常的时候请不要捕获它。坚决鄙视捕获所有异常的行为。
七、当某件事情会平凡发生的时候,即使它代表与这个函数名相反含义,它不代表异常;它应该成为函数契约的一部分,因为我们能够预料发生失败的情况是多么的频繁。
 
 
 
呵呵在pongba新闻组中讨论了半天 “c++ exception” 口水说了不少,总结下;贴出来做个标记欢迎不同意见。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值