В
документации есть пример, где показано как отключать эксепшены для формата.
boost::format my_fmt(const std::string & f_string)
{
using namespace boost::io;
boost::format fmter(f_string);
//fmter.exceptions(all_error_bits ^ bad_format_string_bit);
fmter.exceptions(no_error_bits);
return fmter;
}
int main(int argc, _TCHAR* argv[])
{
try
{
std::cout << my_fmt("%1%, %2%") % 1; // 1
std::cout << my_fmt("%1%, %2") % 1; // 2
}
catch(const boost::exception &exc)
{
std::cout << "exception" << std::endl;
}
return 0;
}
Но почему-то в примере выше эксепшн в строчке 2 (boost::exception_detail::error_info_injector<boost::io::bad_format_string> >) всё равно получаю.
Что-то не так делаю или баг?
Вопрос снят, надо было как-то так:
boost::format my_fmt(const std::string & f_string)
{
using namespace boost::io;
boost::format fmter;
fmter.exceptions(no_error_bits);
fmter.parse(f_string);
return fmter;
}