Fix exception handling around unrecognised options
This commit is contained in:
parent
0b868969be
commit
e83905b783
@ -7,7 +7,7 @@ Feature: osrm-routed command line options: invalid options
|
|||||||
Scenario: osrm-routed - Non-existing option
|
Scenario: osrm-routed - Non-existing option
|
||||||
When I run "osrm-routed --fly-me-to-the-moon"
|
When I run "osrm-routed --fly-me-to-the-moon"
|
||||||
Then stdout should be empty
|
Then stdout should be empty
|
||||||
And stderr should contain "exception"
|
And stderr should contain "unrecognised"
|
||||||
And stderr should contain "fly-me-to-the-moon"
|
And stderr should contain "fly-me-to-the-moon"
|
||||||
And it should exit with code 1
|
And it should exit with code 1
|
||||||
|
|
||||||
|
@ -77,11 +77,19 @@ return_code parseArguments(int argc, char *argv[], contractor::ContractorConfig
|
|||||||
|
|
||||||
// parse command line options
|
// parse command line options
|
||||||
boost::program_options::variables_map option_variables;
|
boost::program_options::variables_map option_variables;
|
||||||
|
try
|
||||||
|
{
|
||||||
boost::program_options::store(boost::program_options::command_line_parser(argc, argv)
|
boost::program_options::store(boost::program_options::command_line_parser(argc, argv)
|
||||||
.options(cmdline_options)
|
.options(cmdline_options)
|
||||||
.positional(positional_options)
|
.positional(positional_options)
|
||||||
.run(),
|
.run(),
|
||||||
option_variables);
|
option_variables);
|
||||||
|
}
|
||||||
|
catch(boost::program_options::error& e)
|
||||||
|
{
|
||||||
|
util::SimpleLogger().Write(logWARNING) << "[error] " << e.what();
|
||||||
|
return return_code::fail;
|
||||||
|
}
|
||||||
|
|
||||||
if (option_variables.count("version"))
|
if (option_variables.count("version"))
|
||||||
{
|
{
|
||||||
|
@ -73,14 +73,21 @@ return_code parseArguments(int argc, char *argv[], extractor::ExtractorConfig &e
|
|||||||
visible_options.add(generic_options).add(config_options);
|
visible_options.add(generic_options).add(config_options);
|
||||||
|
|
||||||
// parse command line options
|
// parse command line options
|
||||||
|
boost::program_options::variables_map option_variables;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
boost::program_options::variables_map option_variables;
|
|
||||||
boost::program_options::store(boost::program_options::command_line_parser(argc, argv)
|
boost::program_options::store(boost::program_options::command_line_parser(argc, argv)
|
||||||
.options(cmdline_options)
|
.options(cmdline_options)
|
||||||
.positional(positional_options)
|
.positional(positional_options)
|
||||||
.run(),
|
.run(),
|
||||||
option_variables);
|
option_variables);
|
||||||
|
}
|
||||||
|
catch (boost::program_options::error &e)
|
||||||
|
{
|
||||||
|
util::SimpleLogger().Write(logWARNING) << "[error] " << e.what();
|
||||||
|
return return_code::fail;
|
||||||
|
}
|
||||||
|
|
||||||
if (option_variables.count("version"))
|
if (option_variables.count("version"))
|
||||||
{
|
{
|
||||||
util::SimpleLogger().Write() << OSRM_VERSION;
|
util::SimpleLogger().Write() << OSRM_VERSION;
|
||||||
@ -100,12 +107,6 @@ return_code parseArguments(int argc, char *argv[], extractor::ExtractorConfig &e
|
|||||||
util::SimpleLogger().Write() << visible_options;
|
util::SimpleLogger().Write() << visible_options;
|
||||||
return return_code::exit;
|
return return_code::exit;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
catch (std::exception &e)
|
|
||||||
{
|
|
||||||
util::SimpleLogger().Write(logWARNING) << e.what();
|
|
||||||
return return_code::fail;
|
|
||||||
}
|
|
||||||
|
|
||||||
return return_code::ok;
|
return return_code::ok;
|
||||||
}
|
}
|
||||||
|
@ -122,11 +122,19 @@ inline unsigned generateServerProgramOptions(const int argc,
|
|||||||
|
|
||||||
// parse command line options
|
// parse command line options
|
||||||
boost::program_options::variables_map option_variables;
|
boost::program_options::variables_map option_variables;
|
||||||
|
try
|
||||||
|
{
|
||||||
boost::program_options::store(boost::program_options::command_line_parser(argc, argv)
|
boost::program_options::store(boost::program_options::command_line_parser(argc, argv)
|
||||||
.options(cmdline_options)
|
.options(cmdline_options)
|
||||||
.positional(positional_options)
|
.positional(positional_options)
|
||||||
.run(),
|
.run(),
|
||||||
option_variables);
|
option_variables);
|
||||||
|
}
|
||||||
|
catch(boost::program_options::error& e)
|
||||||
|
{
|
||||||
|
util::SimpleLogger().Write(logWARNING) << "[error] " << e.what();
|
||||||
|
return INIT_FAILED;
|
||||||
|
}
|
||||||
|
|
||||||
if (option_variables.count("version"))
|
if (option_variables.count("version"))
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user