как получить номер строки ошибки в программе на C ++

Я хочу обрабатывать ошибки в моей программе на C ++, поэтому я создал несколько классов исключений для управления этими ошибками, но я хочу указать, в какой строке моей программы произошла ошибка.

Я передал макрос LINE конструктору своего класса исключения.

Например:

void f(int i){ // LINE A
  if(i<0)
    throw(OutOfRange("message", __LINE__); // LINE B
}

void main(){

  try{
    f(-6); // LINE C
  }
  catch(const OutOfRange& error){
    //do something
  }

}

В этом примере я могу получаю только номер LINE B, но я хочу получить номера LINE A и LINE C.

Есть идеи, где и как использовать макрос LINE ??

Спасибо.

12
задан lolando 1 July 2015 в 13:11
поделиться