replaced exception.what() with boost::diagnostic_information(exception)