Информация об исключении
Имеются три глобальные переменные, в которых хранится информация о текущем исключении (они объявлены в заголовке except, h):
Чтобы эта информация стала доступной, на странице 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