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
© Овсеевич Р.В. Документация по CntmLib 1.1.4 от 28 May 2008. Создано системой 1.5.3 |