In case of a command line usage error, a CmdLineException is thrown.
CmdLineException is derived from std::exception.
It has the following member functions:
A complete example with exception handling looks like this:
#include <iostream>
#include <string>
#include "cmdline.h"
using namespace std;
using namespace cmdl; // defined in cmdline.h
void PrintHelp(){/* like above */}
void AddStringToList(const string& s){/* like above */}
int main(int argc, char *argv[])
{
try
{
CmdLine CL;
int anInt;
CL.Init( --argc, ++argv ); // skip program name
CL.Call( "-h", PrintHelp );
CL.GetSingleValue( "-N", anInt );
CL.Call( "-S", AddStringToList, CmdLine::cmdMultipleArgs );
CL.Done();
}
// of course you may also catch an "exception"
catch (CmdLineException& e)
{
cerr << "error message: " << e.what() << endl
<< "error code: " << e.get_error_code() << endl
<< "cmdline option: " << e.get_option() << endl;
}
}