使用异常
- 编程错误一律使用异常,促使代码规范(虚函数接口中抛出异常,防止子类调用)
- 涉及程序逻辑的处理一律不准使用异常(例如购物中的库存不足情况)
- 特殊约定,需要异常处理的一律保持异常处理(数据库事务异常回滚)
- 能预测、必现的异常一律改用手动逻辑判断处理(空指针调用,除数为零)
- 不能预测、资源异常情况,一律用异常处理(服务断开,资源不足)
- 参数校验尽量手动处理(能预测)
捕获异常
- 异常最终目的是让设计者进行某种程度的复原,所以只捕获能够处理的异常(参数类型可预测,应该返回提示让用户处理)
- 尽量捕获更细节的异常
- 不用留空异常处理,至少打印日志