提升异常

Net*_*zen 12 c++ boost exception-handling exception

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

Ahm*_*taq 11

根据文档 boost::exception不继承std::exception.

FAQ解释了为什么.

但是,此页面介绍了如何正确使用Boost异常.

  • Boost.Exception是可存储和可重复抛出异常的框架.它们不会直接从任何增强库中抛出.FAQ http://www.boost.org/doc/libs/1_39_0/libs/exception/doc/frequently_asked_questions.html解释了为什么`boost :: exception`不从`std :: exception`继承. (3认同)

Emi*_*mil 7

应该使用"良好的Boost citizen"库boost::throw_exception,以支持禁用异常处理的配置.

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

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