Я пытаюсь использовать BOOST_THROW_EXCEPTION
, чтобы сделать это, вот пример :
#include <boost/throw_exception.hpp>
#include <stdexcept>
void demo_boost_throw()
{
BOOST_THROW_EXCEPTION(std::runtime_error("boost throw std exception."));
}
int main() {
demo_boost_throw();
return 0;
}
С здесь мы можем видеть, что он содержит файл
#define BOOST_THROW_EXCEPTION(x)\
::boost::throw_exception( ::boost::enable_error_info(x) <<\
::boost::throw_function(BOOST_THROW_EXCEPTION_CURRENT_FUNCTION) <<\
::boost::throw_file(__FILE__) <<\
::boost::throw_line((int)__LINE__) )
Но когда я запускаю программу, она не распечатывает файл и строку.
Существует current_exception_diagnostic_information()
, но для этого требуется перехват и печать. Я не хочу это ловить. Я хочу, чтобы e.what () содержало дополнительную информацию о throw_function, throw_file и throw_line. Как я могу это сделать?