Exception.h

См. документацию.
00001 /*
00002  * CntmLib - Подсчет ссылок, потоки, синхронизация, асинхронные процедуры, события
00003  * Copyright (c) 2005, Овсеевич Роман, CntmLib@mail.ru
00004  * _______________________________________________________________________________
00005  * Разрешено свободное использование, копирование, распространение, изменение
00006  * (изменение сведений об авторских правах запрещено). Запрещена продажа и 
00007  * включение всей библиотеки или ее частей в другие библиотеки. В сведениях об
00008  * авторских правах на программу (или сведениях о программе, об авторах, 
00009  * использованных средствах разработки и т.д.) должна быть указана информация
00010  * о библиотеке CntmLib, ее авторе и, возможно, сайте или email'е.
00011  * Библиотека поставляется "как есть", без каких-либо гарантий со стороны автора.
00012  */ 
00013 
00014 #ifndef CNTM_EXCEPTION_H
00015 #define CNTM_EXCEPTION_H
00016 #include <stdexcept>
00017 #include <string>
00018 
00019 namespace Cntm
00020 {
00021 
00022         /**
00023          * Базовый класс исключений, генерируемых библиотекой.
00024          * @author Овсеевич Р.
00025          * \ingroup Exceptions
00026          */
00027         class Exception: public std::runtime_error
00028         {
00029         public:
00030 
00031                 /**
00032                  * Конструктор. Параметры: Where - место возникновения, Info - дополнительная информация, Error - название ошибки.
00033                  */
00034                 Exception(const std::string& Where = "", const std::string& Info = "",
00035                         const std::string& Error = ""):
00036                         runtime_error(FormMessage(Error, Info, Where)) {}
00037 
00038                 /**
00039                  * Текст сообщения.
00040                  */
00041                 const char * Message() const { return what(); }
00042 
00043         private:
00044 
00045                 /**
00046                  * Формирует сообщение из следующих компонентов: название ошибки, дополнительная информация, место возникновения. 
00047                  */
00048                 static std::string FormMessage(const std::string & error, 
00049                         const std::string & info, const std::string & where);
00050         };
00051 
00052 }
00053 
00054 #endif //CNTM_EXCEPTION_H

SourceForge.net Logo
© Овсеевич Р.В. Документация по CntmLib 1.1.4 от 28 May 2008. Создано системой  doxygen 1.5.3