禁用 C++ 异常
7.27 ID_forbidException
本规则适用如下场景,可酌情选取。
- 对时空性能有严格要求的项目
- 代码所属框架不支持异常处理
- 与 C 或其他语言兼容的接口实现
- 项目没有依照异常安全的理念实施
利用返回值或错误码的错误处理方式要求检查可能产生错误的每一个步骤,有些出错情况可能被遗漏,C++ 的异常机制可大幅简化这种繁琐的方式,使代码更专注于事务或算法的实现,而且 C++ 异常是不可被忽略的,然而 C++ 的异常机制是需要一定开销的,对代码的设计与实现也有更严格的要求。
如果异常情况频繁出现,其成本是不可被忽视的,不适用于具有高性能要求的实时软件系统。如果代码所属项目没有依照异常安全的理念实施,使用异常反而会造成更多问题,可参见 ID_exceptionUnsafe 的进一步讨论。