Титульная страница   Пространства имен   Иерархия классов   Алфавитный указатель   Классы   Файлы   Члены пространства имен   Члены классов   Члены файла  

Класс ExampleCException

исключение-пример использования CException в качестве базового класса Подробнее...

Граф наследования:ExampleCException:

CException Полный список членов класса

Открытые члены

virtual std::string getClassName () const
 Возвращает имя класса-исключения.

virtual std::string toString () const
 Возвращает "полное описание" исключения, включающее имя класса и место возникновения.

std::string toStringAll () const
 Возвращает "полное описание" текущего исключения и всех исключений, вложенных в него.

template<class E> E * is ()
 Удобная функция для проверки является ли текущее исключение исключением класса E (или производным от него).

template<class E> const E * is () const
 Удобная функция для проверки является ли текущее константное исключение исключением класса E (или производным от него).

void * operator new (size_t size)
 Переопределенный для ускорения работы распределитель памяти.

void operator delete (void *ptr, size_t size)
 Переопределенный для ускорения работы распределитель памяти.


Открытые атрибуты

const FileLine location
 место возникновения исключения.

const std::string message
 сообщение

const sh_ptr< CExceptionnested
 указатель на вложенное исключение, причину текущего, или 0


Защищенные члены

 ExampleCException (const FileLine &loc, const std::string &msg, sh_ptr< CException > nest)

Друзья

sh_ptr< CExceptionnewExampleCException (const FileLine &loc, const std::string &msg, sh_ptr< CException > nest=sh_ptr< CException >())
sh_ptr< CExceptionnewCException (const FileLine &loc, const std::string &msg, sh_ptr< CException > nest=sh_ptr< CException >())
 Предназначена для создания объектов вместо конструктора.


Подробное описание

исключение-пример использования CException в качестве базового класса

См. определение в файле ceexample.cpp строка 23


Методы

virtual std::string ExampleCException::getClassName  )  const [inline, virtual]
 

Возвращает имя класса-исключения.

Должна обязательно переопределяться в производных классах.

Переопределяет метод предка CException.

См. определение в файле ceexample.cpp строка 32

00032 { return "ExampleCException"; }

template<class E>
const E* CException::is  )  const [inline, inherited]
 

Удобная функция для проверки является ли текущее константное исключение исключением класса E (или производным от него).

Возвращает ненулевой указатель запрашиваемого типа в случае положительного ответа.

См. определение в файле cexception.hpp строка 123

00123 { return dynamic_cast<const E*>(this); }

template<class E>
E* CException::is  )  [inline, inherited]
 

Удобная функция для проверки является ли текущее исключение исключением класса E (или производным от него).

Возвращает ненулевой указатель запрашиваемого типа в случае положительного ответа.

См. определение в файле cexception.hpp строка 115

00115 { return dynamic_cast<E*>(this); }

void CException::operator delete void *  ptr,
size_t  size
[inline, inherited]
 

Переопределенный для ускорения работы распределитель памяти.

Корректно работает и с производными классами.

См. определение в файле cexception.hpp строка 138

Перекрестные ссылки sized_alloc::free().

00139       {
00140        sized_alloc::free(ptr, size);
00141       }

void* CException::operator new size_t  size  )  [inline, inherited]
 

Переопределенный для ускорения работы распределитель памяти.

Корректно работает и с производными классами.

См. определение в файле cexception.hpp строка 129

Перекрестные ссылки sized_alloc::alloc().

00130       {
00131        return sized_alloc::alloc(size);
00132       }

std::string CException::toString  )  const [virtual, inherited]
 

Возвращает "полное описание" исключения, включающее имя класса и место возникновения.

Должна переопределяться производными классами, имеющими дополнительные данные.

Переопределяется в ExternalCException.

См. определение в файле cexception.cpp строка 36

Перекрестные ссылки CException::FileLine::fname, CException::getClassName(), CException::FileLine::line, CException::location и CException::message.

Используется в CException::toStringAll().

00037 {
00038  return StringBuf()+getClassName()+" ["+location.fname+":"+location.line+"]: "+
00039    message;
00040 }

std::string CException::toStringAll  )  const [inherited]
 

Возвращает "полное описание" текущего исключения и всех исключений, вложенных в него.

Фактически, результаты применения toString() к каждому из исключений объединяются в одну строку.

См. определение в файле cexception.cpp строка 42

Перекрестные ссылки sh_ptr< CException >::get(), CException::nested и CException::toString().

00043 {
00044  string ret;
00045  ret.reserve(1024);
00046 
00047  for (const CException* ptr=this; ptr; ptr=ptr->nested.get()) {
00048      ret.append(ptr->toString());
00049      ret.push_back('\n');
00050  }
00051 
00052  return ret;
00053 }


Документация по друзьям класса и функциям отноносящихся к классу

sh_ptr<CException> newCException const FileLine &  loc,
const std::string &  msg,
sh_ptr< CException nest = sh_ptr<CException>()
[friend, inherited]
 

Предназначена для создания объектов вместо конструктора.

Создает объект в свободной памяти по переданным месту исключения, сообщению и, возможно, вложенному исключению. Для передачи объекта loc удобно использовать макрос _FLINE_.

См. определение в файле cexception.hpp строка 281

00283 {
00284  return sh_ptr<CException>(new CException(loc, msg, nest));
00285 }


Данные класса

const FileLine CException::location [inherited]
 

место возникновения исключения.

См. определение в файле cexception.hpp строка 69

Используется в ExternalCException::toString() и CException::toString().

const std::string CException::message [inherited]
 

сообщение

См. определение в файле cexception.hpp строка 71

Используется в ExternalCException::toString() и CException::toString().

const sh_ptr<CException> CException::nested [inherited]
 

указатель на вложенное исключение, причину текущего, или 0

См. определение в файле cexception.hpp строка 73

Используется в CException::toStringAll().


Объявления и описания членов класса находятся в файле:
Документация по ftext. Последние изменения: Sat Mar 20 17:58:15 2004. Создано системой doxygen1.3