Boost C++ 库

...全世界最受推崇、设计最精湛的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, C++ Coding Standards

boost exception - Boost C++ 函数库

Boost Exception

注意: 当以 C++11 或更新版本为目标,并且 Boost 1.75 或更新版本可用时,建议使用 Boost LEAF 而不是 Boost Exception。LEAF 具有类似的功能,但接口更优雅,效率更高,并且无论是否启用异常处理都可以工作——同时它还能理解 Boost Exception 的错误信息,以便与旧版源代码兼容。这篇 概述 解释了两种 API 之间的区别(Boost Exception **未**被弃用,并将继续获得支持,包括对 C++03 的兼容性)。

介绍

Boost Exception 的目的是简化异常类层次结构的设计,并帮助编写异常处理和错误报告代码。

它支持将任意数据传输到 catch 语句块,这通常很棘手,因为异常类型具有 no-throw 要求(15.5.1)。数据可以添加到任何异常对象中,无论是在 throw 表达式(15.1)中直接添加,还是在异常对象沿调用堆栈传播的稍后阶段添加。

能够在异常对象传递给 throw 之后为其添加数据非常重要,因为在检测到故障的上下文中,通常无法获得处理异常所需的一些信息。

Boost Exception 还支持 N2179 风格的异常对象 复制,通过 boost::throw_exception 函数以非侵入式且自动的方式实现。

目录

  1. 动机
  2. 教程
  3. 文档
  4. API
  5. 常见问题
  6. 页面索引

致谢

感谢 Peter Dimov 一直以来的帮助。同时感谢 Tobias Schwinger、Tom Brinkman、Pavel Vozenilek 以及所有参与审查过程的人员。