Подтвердить что ты не робот

Форсировать исключения

Все ли исключения для исключения происходят из std:: exception? Если не все они происходят из какого-то базового класса исключения?

4b9b3361

Ответ 1

Согласно документация boost::exception не наследует std::exception.

FAQ объясняет, почему.

Однако эта страница объясняет, как правильно использовать исключения Boost.

Ответ 2

Библиотека "good 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.

Ответ 3

Я так считаю. Нельзя думать о том, что библиотека boost генерирует что-то не-std:: исключение.