Oleg Vazhnev
Oleg Vazhnev

Reputation: 24067

boost::exception - how to print details?

I have such codein my program:

catch (boost::exception& ex) {
    // error handling
}

How can I print details? Error message, stacktrace etc.?

Upvotes: 9

Views: 12714

Answers (2)

chwarr
chwarr

Reputation: 7202

For something as generic as a boost::exception, I think you are looking for the boost::diagnostic_information function to get a niceish string representation.

#include <boost/exception/diagnostic_information.hpp>

catch (const boost::exception& ex) {
    // error handling
    std::string info = boost::diagnostic_information(ex);
    log_exception(info); // some logging function you have
}

To get the stack for an exception, I'd start with the StackOverflow question C++ display stack trace on exception.

Upvotes: 7

Constantin
Constantin

Reputation: 8961

You can use boost::diagnostic_information() to get the actual error messages and origin of the exception. i.e.

catch (const boost::exception& ex) {
    // error handling
    std::cerr << boost::diagnostic_information(ex);
}

Upvotes: 6

Related Questions