Граф наследования:ExampleCException:
Открытые члены | |
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< CException > | nested |
указатель на вложенное исключение, причину текущего, или 0 | |
Защищенные члены | |
ExampleCException (const FileLine &loc, const std::string &msg, sh_ptr< CException > nest) | |
Друзья | |
sh_ptr< CException > | newExampleCException (const FileLine &loc, const std::string &msg, sh_ptr< CException > nest=sh_ptr< CException >()) |
sh_ptr< CException > | newCException (const FileLine &loc, const std::string &msg, sh_ptr< CException > nest=sh_ptr< CException >()) |
Предназначена для создания объектов вместо конструктора. |
См. определение в файле ceexample.cpp строка 23
|
Возвращает имя класса-исключения. Должна обязательно переопределяться в производных классах. Переопределяет метод предка CException. См. определение в файле ceexample.cpp строка 32
00032 { return "ExampleCException"; } |
|
Удобная функция для проверки является ли текущее константное исключение исключением класса E (или производным от него). Возвращает ненулевой указатель запрашиваемого типа в случае положительного ответа. См. определение в файле cexception.hpp строка 123
00123 { return dynamic_cast<const E*>(this); }
|
|
Удобная функция для проверки является ли текущее исключение исключением класса E (или производным от него). Возвращает ненулевой указатель запрашиваемого типа в случае положительного ответа. См. определение в файле cexception.hpp строка 115
00115 { return dynamic_cast<E*>(this); }
|
|
Переопределенный для ускорения работы распределитель памяти. Корректно работает и с производными классами. См. определение в файле cexception.hpp строка 138 Перекрестные ссылки sized_alloc::free().
00139 { 00140 sized_alloc::free(ptr, size); 00141 } |
|
Переопределенный для ускорения работы распределитель памяти. Корректно работает и с производными классами. См. определение в файле cexception.hpp строка 129 Перекрестные ссылки sized_alloc::alloc().
00130 { 00131 return sized_alloc::alloc(size); 00132 } |
|
Возвращает "полное описание" исключения, включающее имя класса и место возникновения. Должна переопределяться производными классами, имеющими дополнительные данные. Переопределяется в 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 } |
|
Возвращает "полное описание" текущего исключения и всех исключений, вложенных в него. Фактически, результаты применения 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 } |
|
Предназначена для создания объектов вместо конструктора. Создает объект в свободной памяти по переданным месту исключения, сообщению и, возможно, вложенному исключению. Для передачи объекта loc удобно использовать макрос _FLINE_. См. определение в файле cexception.hpp строка 281
00283 { 00284 return sh_ptr<CException>(new CException(loc, msg, nest)); 00285 } |
|
место возникновения исключения.
См. определение в файле cexception.hpp строка 69 Используется в ExternalCException::toString() и CException::toString(). |
|
сообщение
См. определение в файле cexception.hpp строка 71 Используется в ExternalCException::toString() и CException::toString(). |
|
указатель на вложенное исключение, причину текущего, или 0
См. определение в файле cexception.hpp строка 73 Используется в CException::toStringAll(). |