#include <iostream>
#include <dos.h> // TO GET THE GLOBAL _arg VALUES
#include <condefs.h>
#pragma hdrstop
#include <except.h>
USERES("Project1.res");
//---------------------------------------------------------------------------
#pragma option -xp
void MyFunc(void)
{
throw Exception( "The rain in spain lies mainly in the plain." );
}
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
try { MyFunc(); }
catch ( Exception &e )
{ ShowMessage( e.Message + "\n\n"
+ "An exception of type " + __ThrowExceptionName()
+ "\nwas thrown by line " + AnsiString(__ThrowLineNumber())
+ "\nof file " + __ThrowFileName() );
};
return 0;
}
Связывание кода с исходником
Можно ли каким-либо образом, выкидывая, например, исключение, заодно указать,в какой строке какого файла исходников происходит выбрасывание исключения. Причем, это должен быть не ручной ввод имени файла и номера строки, а что-то более гибкое.
А во время отладки он сакм говорит и встает на нужную строку. Если нет, то у тебя отключен режим отладки. Включаеться он так
Проджект-оптионс-фуллдебуг (на какойто закладке)
Пример:
AnsiString str="Переменная str инициализируется в исходнике "+{имя исходника}+" в строке номер "+{номер строки}.
Как получить {имя исходника} и {номер строки}?
Посмотрите Project Options вкладка C++, группа Exception Handling, чекбокс Location Information. Используются глобальные функции, описанные в справке:
Спасибо.