Commit 8955375eb23d7278d293c6d264893a9f97845e7b

Authored by Henry Fredrick Schreiner
Committed by Henry Schreiner
1 parent 852929f0

Making sure just catching Error works

Showing 1 changed file with 6 additions and 3 deletions
include/CLI/App.hpp
@@ -29,10 +29,8 @@ namespace CLI { @@ -29,10 +29,8 @@ namespace CLI {
29 #define CLI11_PARSE(app, argc, argv) \ 29 #define CLI11_PARSE(app, argc, argv) \
30 try { \ 30 try { \
31 (app).parse((argc), (argv)); \ 31 (app).parse((argc), (argv)); \
32 - } catch(const CLI::ParseError &e) { \ 32 + } catch(const CLI::Error &e) { \
33 return (app).exit(e); \ 33 return (app).exit(e); \
34 - } catch(const CLI::RuntimeError &e) { \  
35 - return e.get_exit_code(); \  
36 } 34 }
37 #endif 35 #endif
38 36
@@ -682,6 +680,11 @@ class App { @@ -682,6 +680,11 @@ class App {
682 680
683 /// Print a nice error message and return the exit code 681 /// Print a nice error message and return the exit code
684 int exit(const Error &e) const { 682 int exit(const Error &e) const {
  683 +
  684 + /// Avoid printing anything if this is a CLI::RuntimeError
  685 + if(dynamic_cast<const CLI::RuntimeError*>(&e) != nullptr)
  686 + return e.get_exit_code();
  687 +
685 if(e.exit_code != static_cast<int>(ExitCodes::Success)) { 688 if(e.exit_code != static_cast<int>(ExitCodes::Success)) {
686 std::cerr << "ERROR: "; 689 std::cerr << "ERROR: ";
687 std::cerr << e.what() << std::endl; 690 std::cerr << e.what() << std::endl;