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

Файл cexception.cpp

Определения функций, объявленных в cexception.hpp. Подробнее...

#include "cexception.hpp"
#include <exception>
#include <typeinfo>
#include "stringbuf.hpp"

См. исходные тексты.

Функции

sh_ptr< CExceptiontoCException (const CException::FileLine &location)
 Данная функция перевозбуждает текущее исключение и возвращает созданный по нему sh_ptr<CException>.


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

Определения функций, объявленных в cexception.hpp.

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


Функции

sh_ptr<CException> toCException const CException::FileLine location  ) 
 

Данная функция перевозбуждает текущее исключение и возвращает созданный по нему sh_ptr<CException>.

Она может быть вызвана только из блока catch. Для передачи объекта location удобно использовать макрос _FLINE_. Если используемая платформа предоставляет дополнительные (нестандартные) возможности для получения более подробной информации о перехваченных исключениях неизвестного типа, то имеет смысл написать специальную реализацию данной функции, использующую эти возможности.

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

Используется в FindFileImpl::find(), FindTextImpl::found(), Factory::newFindFile(), Factory::newFindText(), Factory::newNameMatcher(), Factory::newTextFinder() и FindTextImpl::search().

00107 {
00108 #ifndef DERS_RETHROW_BUG  // нормальная версия
00109  try { throw; }
00110  catch (sh_ptr<CException> ce) {
00111        return ce;
00112  }
00113  catch (const exception& e) {
00114        return newSTDExternalCException(location, e.what(), typeid(e).name());
00115  }
00116  catch (...) {
00117        return newUnknownExternalCException(location, "Unknown exception",
00118          "unknown");
00119  }
00120 #else  // версия для компиляторов с ошибками
00121  if (CException::current.refs()>1 && CException::current.get())
00122     return CException::current;
00123 
00124  return newUnknownExternalCException(location, "Unknown exception", "unknown");
00125 #endif
00126 }


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