Boost.Exception
Boost.Exception 库提供了一种新的异常类型 boost::exception,它允许您在抛出异常后将数据添加到异常中。此类型在 boost/exception/exception.hpp 中定义。由于 Boost.Exception 将其类和函数分布在多个头文件中,以下示例访问主头文件 boost/exception/all.hpp 以避免一个接一个地包含头文件。
Boost.Exception 支持 C++11 标准的机制,该机制将异常从一个线程传输到另一个线程。 boost::exception_ptr 类似于 std::exception_ptr。但是,Boost.Exception 并不能完全替代标准库中的头文件异常。例如,Boost.Exception 缺少对 std::nested_exception 类型的嵌套异常的支持。
注意
要使用 Visual C++ 2013 编译本章中的示例,请删除关键字 noexcept。此版本的 Microsoft 编译器尚不支持 noexcept。
示例 56.1。使用 boost::exception
#include <boost/exception/all.hpp>
#include <exception>
#include <new>
#include <string>
#include <algorithm>
#include <lim