最低成本
exception是C++的一部分,编译器必须支持。即使从未使用任何异常处理机制,也必须付出一些空间放置某些数据结构,付出一些时间随时保持那些数据结构的正确性。
第二种成本:来自try语句块
避免非必要的try语句块。
粗略估计,代码中出现try语句块,代码整体膨胀5%~10%。
成本最小化
- 只要能够不支持exceptions,编译器便不支持;
- 将try语句块和exception specifications的使用限制于非用不可的地点,并且在真正异常的情况之下才抛出exceptions;
- 如果性能上仍有问题,利用分析工具分析程序,评估“对exception的支持”是否是一个影响因素;
- 如果是,考虑改用不同的编译器,使得能在C++异常处理方面具有更高实现效率。