#include <cexception.hpp>
Граф наследования:ExternalCException:
Открытые члены | |
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< CException > | nested |
указатель на вложенное исключение, причину текущего, или 0 | |
Защищенные члены | |
ExternalCException (const FileLine &loc, const std::string &msg, const std::string &tname, sh_ptr< CException > nest) | |
Защищенный конструктор. | |
Друзья | |
sh_ptr< CException > | newExternalCException (const FileLine &loc, const std::string &msg, const std::string &tname, 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 >()) |
Предназначена для создания объектов вместо конструктора. |
См. определение в файле cexception.hpp строка 148
|
Защищенный конструктор. Для создания объектов необходимо использовать функцию newExternalCException(). См. определение в файле cexception.cpp строка 55
00056 : 00057 CException(loc, msg, nest), typeName(tname) 00058 { 00059 } |
|
Виртуальный деструктор.
См. определение в файле cexception.cpp строка 61
00062 { 00063 } |
|
Возвращает имя класса-исключения. Должна обязательно переопределяться в производных классах. Переопределяет метод предка CException. Переопределяется в STDExternalCException и UnknownExternalCException. См. определение в файле cexception.cpp строка 65 Используется в toString().
00066 { 00067 return "ExternalCException"; 00068 } |
|
Удобная функция для проверки является ли текущее константное исключение исключением класса 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 } |
|
Возвращает "полное описание" исключения, включающее имя класса и место возникновения. Должна переопределяться производными классами, имеющими дополнительные данные. Переопределяет метод предка CException. См. определение в файле cexception.cpp строка 70 Перекрестные ссылки getClassName(), CException::location, CException::message и typeName.
|
|
Возвращает "полное описание" текущего исключения и всех исключений, вложенных в него. Фактически, результаты применения 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 } |
|
Предназначена для создания объектов вместо конструктора. Создает объект по переданным месту исключения, сообщению, имени типа и, возможно, вложенному исключению. Для передачи объекта loc удобно использовать макрос _FLINE_. |
|
место возникновения исключения.
См. определение в файле cexception.hpp строка 69 Используется в toString() и CException::toString(). |
|
сообщение
См. определение в файле cexception.hpp строка 71 Используется в toString() и CException::toString(). |
|
указатель на вложенное исключение, причину текущего, или 0
См. определение в файле cexception.hpp строка 73 Используется в CException::toStringAll(). |
|
Имя типа инкапсулируемого исключения для более точной диагностики. Зачастую, это просто результат вызова std::type_info::name(). См. определение в файле cexception.hpp строка 162 Используется в toString(). |