C++ Программирование в среде С++ Builder 5

Информация об исключении


Имеются три глобальные переменные, в которых хранится информация о текущем исключении (они объявлены в заголовке except, h):

  • _throwExceptionName содержит указатель на строку с именем типа исключения;
  • _throwFileNane содержит указатель на строку с именем файла, где произошло исключение;
  • _throwLineNumber — целое без знака, представляющее номер строки файла, где было выброшено исключение.
  • Чтобы эта информация стала доступной, на странице C++ диалога Project Options нужно установить флажок Location information в группе Exception handling (по умолчанию выключен). Он соответствует ключу командной строки -хр.

    Вот пример:

    ////////////////////////////////////////////////////

    // Loclnfo.cpp: Информация о точке выброса исключения.

    //

    #include <iostream.h>

    #include <stdexcept>

    #pragma hdrstop

    #include <condefs.h>



    void f() {

    throw invalid_argument("Exception from f(): ");

    }

    int main() {

    try { f () ;

    }

    catch(const exception &e) { cout << e.what()

    << _throwExceptionName << end1

    << " in file " << _throwFileName << end1

    << " line " << _throwLineNumber << end1;

    }

    return 0; }

    Программа печатает:

    Exception from f(): invalid argument

    in file C:\Projects\Chl2\LocInfo\LocInfo.cpp line 8



    Содержание раздела