提升异常

时间:2009-06-28 17:25:02

标签: c++ exception boost exception-handling

是否所有提升异常都来自std :: exception?如果不是,它们都来自某个基类异常类?

3 个答案:

答案 0 :(得分:11)

根据the documentation boost::exception,不会继承std::exception

FAQ解释了原因。

但是this page解释了如何正确使用Boost异常。

答案 1 :(得分:7)

“好的Boost citizen”库应该使用boost::throw_exception,以支持禁用异常处理的配置。

boost::throw_exception函数要求传递的异常的类型从std::exception公开派生(从1.37.0版本开始,或者boost::throw_exception将发出编译错误,如果该要求不是此外,默认情况下,使用boost::throw_exception发出的异常来自boost::exception

但是,Boost库不需要通过boost:throw_exception抛出异常或从std::exception派生。

答案 2 :(得分:1)

我相信。想不到一个boost库抛出一些非std :: exception的东西。