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

Класс ExternalCException

Общий базовый класс для инкапсуляции исключений, являющихся внешними по отношению к иерархии, порождаемой CException. Подробнее...

#include <cexception.hpp>

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

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

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

virtual ~ExternalCException ()
 Виртуальный деструктор.

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 std::string typeName
 Имя типа инкапсулируемого исключения для более точной диагностики.

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

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

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


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

 ExternalCException (const FileLine &loc, const std::string &msg, const std::string &tname, sh_ptr< CException > nest)
 Защищенный конструктор.


Друзья

sh_ptr< CExceptionnewExternalCException (const FileLine &loc, const std::string &msg, const std::string &tname, 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.

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


Конструктор(ы)

ExternalCException::ExternalCException const FileLine &  loc,
const std::string &  msg,
const std::string &  tname,
sh_ptr< CException nest
[protected]
 

Защищенный конструктор.

Для создания объектов необходимо использовать функцию newExternalCException().

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

00056                                                                          :
00057   CException(loc, msg, nest), typeName(tname)
00058 {
00059 }

ExternalCException::~ExternalCException  )  [virtual]
 

Виртуальный деструктор.

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

00062 {
00063 }


Методы

std::string ExternalCException::getClassName  )  const [virtual]
 

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

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

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

Переопределяется в STDExternalCException и UnknownExternalCException.

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

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

00066 {
00067  return "ExternalCException";
00068 }

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 ExternalCException::toString  )  const [virtual]
 

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

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

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

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

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

00071 {
00072  return StringBuf()+getClassName()+" ["+location.fname+":"+location.line+
00073    "], typeName=\""+typeName+"\", message=\""+message+"\"";
00074 }

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 }

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

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

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


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

const FileLine CException::location [inherited]
 

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

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

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

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

сообщение

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

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

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

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

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

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

const std::string ExternalCException::typeName
 

Имя типа инкапсулируемого исключения для более точной диагностики.

Зачастую, это просто результат вызова std::type_info::name().

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

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


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