Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

integrating boost exception in existing exception class hierarchies

Boost , ,

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Boost Exception

Integrating Boost Exception in Existing Exception Class Hierarchies

Некоторые иерархии исключений не могут быть изменены для повышения:ИсключениеБазовый тип. В этом случаевключить_error_infoШаблон функций может быть использован для того, чтобы объекты исключений выводились из импульса:ИсключениеВ любом случае. Вот пример:

#include <boost/exception/all.hpp>
#include <stdexcept>
typedef boost::error_info<struct tag_std_range_min,size_t> std_range_min;
typedef boost::error_info<struct tag_std_range_max,size_t> std_range_max;
typedef boost::error_info<struct tag_std_range_index,size_t> std_range_index;
template <class T>
class
my_container
    {
    public:
    size_t size() const;
    T const &
    operator[]( size_t i ) const
        {
        if( i > size() )
            throw boost::enable_error_info(std::range_error("Index out of range")) <<
                std_range_min(0) <<
                std_range_max(size()) <<
                std_range_index(i);
        //....
        }
    };

Призыв квключить_error_infoдает нам объектнеопределенного типа, который гарантированно вытекает из обоих импульсов::исключениеи T. Это позволяет использоватьоператора<<для хранения дополнительной информации в объекте исключения. Исключение может быть перехвачено как T &, поэтому существующая обработка исключений не будет нарушена. Он также может быть перехвачен как усилие:исключение& так чтобольше информации может быть добавлено к исключению в более позднее время.

Статья integrating boost exception in existing exception class hierarchies раздела может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 22:09:44/0.0079870223999023/1