повысить исключения - PullRequest
12 голосов
/ 28 июня 2009

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

Ответы [ 3 ]

11 голосов
/ 30 июля 2009

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

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

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

7 голосов
/ 14 января 2010

Библиотека «хорошего буста» должна выдавать, используя 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.

1 голос
/ 28 июня 2009

Я верю в это. Не могу придумать, как библиотека наддува выдает что-то не основанное на std :: exception.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...