summaryrefslogtreecommitdiffstats
path: root/src/tclap/ArgException.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/tclap/ArgException.h')
-rw-r--r--[-rwxr-xr-x]src/tclap/ArgException.h370
1 files changed, 189 insertions, 181 deletions
diff --git a/src/tclap/ArgException.h b/src/tclap/ArgException.h
index 3411aa9..be0b817 100755..100644
--- a/src/tclap/ArgException.h
+++ b/src/tclap/ArgException.h
@@ -1,24 +1,24 @@
// -*- Mode: c++; c-basic-offset: 4; tab-width: 4; -*-
-/******************************************************************************
- *
+/******************************************************************************
+ *
* file: ArgException.h
- *
+ *
* Copyright (c) 2003, Michael E. Smoot .
* All rights reverved.
- *
+ *
* See the file COPYING in the top directory of this distribution for
* more information.
- *
- * THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- *****************************************************************************/
+ *
+ * THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ *****************************************************************************/
#ifndef TCLAP_ARG_EXCEPTION_H
@@ -27,174 +27,182 @@
#include <string>
#include <exception>
-namespace TCLAP {
-
-/**
- * A simple class that defines and argument exception. Should be caught
- * whenever a CmdLine is created and parsed.
- */
-class ArgException : public std::exception
-{
- public:
-
- /**
- * Constructor.
- * \param text - The text of the exception.
- * \param id - The text identifying the argument source.
- * \param td - Text describing the type of ArgException it is.
- * of the exception.
- */
- ArgException( const std::string& text = "undefined exception",
- const std::string& id = "undefined",
- const std::string& td = "Generic ArgException")
- : std::exception(),
- _errorText(text),
- _argId( id ),
- _typeDescription(td)
- { }
-
- /**
- * Destructor.
- */
- virtual ~ArgException() throw() { }
-
- /**
- * Returns the error text.
- */
- std::string error() const { return ( _errorText ); }
-
- /**
- * Returns the argument id.
- */
- std::string argId() const
- {
- if ( _argId == "undefined" )
- return " ";
- else
- return ( "Argument: " + _argId );
- }
-
- /**
- * Returns the arg id and error text.
- */
- const char* what() const throw()
- {
- static std::string ex;
- ex = _argId + " -- " + _errorText;
- return ex.c_str();
- }
-
- /**
- * Returns the type of the exception. Used to explain and distinguish
- * between different child exceptions.
- */
- std::string typeDescription() const
- {
- return _typeDescription;
- }
-
-
- private:
-
- /**
- * The text of the exception message.
- */
- std::string _errorText;
-
- /**
- * The argument related to this exception.
- */
- std::string _argId;
-
- /**
- * Describes the type of the exception. Used to distinguish
- * between different child exceptions.
- */
- std::string _typeDescription;
-
-};
-
-/**
- * Thrown from within the child Arg classes when it fails to properly
- * parse the argument it has been passed.
- */
-class ArgParseException : public ArgException
-{
- public:
- /**
- * Constructor.
- * \param text - The text of the exception.
- * \param id - The text identifying the argument source
- * of the exception.
- */
- ArgParseException( const std::string& text = "undefined exception",
- const std::string& id = "undefined" )
- : ArgException( text,
- id,
- std::string( "Exception found while parsing " ) +
- std::string( "the value the Arg has been passed." ))
- { }
-};
-
-/**
- * Thrown from CmdLine when the arguments on the command line are not
- * properly specified, e.g. too many arguments, required argument missing, etc.
- */
-class CmdLineParseException : public ArgException
-{
- public:
- /**
- * Constructor.
- * \param text - The text of the exception.
- * \param id - The text identifying the argument source
- * of the exception.
- */
- CmdLineParseException( const std::string& text = "undefined exception",
- const std::string& id = "undefined" )
- : ArgException( text,
- id,
- std::string( "Exception found when the values ") +
- std::string( "on the command line do not meet ") +
- std::string( "the requirements of the defined ") +
- std::string( "Args." ))
- { }
-};
-
-/**
- * Thrown from Arg and CmdLine when an Arg is improperly specified, e.g.
- * same flag as another Arg, same name, etc.
- */
-class SpecificationException : public ArgException
+namespace TCLAP
{
- public:
- /**
- * Constructor.
- * \param text - The text of the exception.
- * \param id - The text identifying the argument source
- * of the exception.
- */
- SpecificationException( const std::string& text = "undefined exception",
- const std::string& id = "undefined" )
- : ArgException( text,
- id,
- std::string("Exception found when an Arg object ")+
- std::string("is improperly defined by the ") +
- std::string("developer." ))
- { }
-
-};
-
-class ExitException {
-public:
- ExitException(int estat) : _estat(estat) {}
-
- int getExitStatus() const { return _estat; }
-
-private:
- int _estat;
-};
-
+ /**
+ * A simple class that defines and argument exception. Should be caught
+ * whenever a CmdLine is created and parsed.
+ */
+ class ArgException : public std::exception
+ {
+ public:
+ /**
+ * Constructor.
+ * \param text - The text of the exception.
+ * \param id - The text identifying the argument source.
+ * \param td - Text describing the type of ArgException it is.
+ * of the exception.
+ */
+ ArgException(const std::string &text = "undefined exception",
+ const std::string &id = "undefined",
+ const std::string &td = "Generic ArgException") :
+ std::exception(), _errorText(text), _argId(id), _typeDescription(td)
+ {
+ }
+
+ /**
+ * Destructor.
+ */
+ virtual ~ArgException() throw ()
+ {
+ }
+
+ /**
+ * Returns the error text.
+ */
+ std::string error() const
+ {
+ return _errorText;
+ }
+
+ /**
+ * Returns the argument id.
+ */
+ std::string argId() const
+ {
+ if (_argId == "undefined")
+ {
+ return " ";
+ }
+ else
+ {
+ return "Argument: " + _argId;
+ }
+ }
+
+ /**
+ * Returns the arg id and error text.
+ */
+ const char* what() const throw ()
+ {
+ static std::string ex;
+ ex = _argId + " -- " + _errorText;
+ return ex.c_str();
+ }
+
+ /**
+ * Returns the type of the exception. Used to explain and distinguish
+ * between different child exceptions.
+ */
+ std::string typeDescription() const
+ {
+ return _typeDescription;
+ }
+
+ private:
+ /**
+ * The text of the exception message.
+ */
+ std::string _errorText;
+
+ /**
+ * The argument related to this exception.
+ */
+ std::string _argId;
+
+ /**
+ * Describes the type of the exception. Used to distinguish
+ * between different child exceptions.
+ */
+ std::string _typeDescription;
+ };
+
+ /**
+ * Thrown from within the child Arg classes when it fails to properly
+ * parse the argument it has been passed.
+ */
+ class ArgParseException : public ArgException
+ {
+ public:
+ /**
+ * Constructor.
+ * \param text - The text of the exception.
+ * \param id - The text identifying the argument source
+ * of the exception.
+ */
+ ArgParseException(const std::string &text = "undefined exception",
+ const std::string &id = "undefined") :
+ ArgException(text,
+ id,
+ std::string("Exception found while parsing ") +
+ std::string("the value the Arg has been passed."))
+ {
+ }
+ };
+
+ /**
+ * Thrown from CmdLine when the arguments on the command line are not
+ * properly specified, e.g. too many arguments, required argument missing, etc.
+ */
+ class CmdLineParseException : public ArgException
+ {
+ public:
+ /**
+ * Constructor.
+ * \param text - The text of the exception.
+ * \param id - The text identifying the argument source
+ * of the exception.
+ */
+ CmdLineParseException(const std::string &text = "undefined exception",
+ const std::string &id = "undefined") :
+ ArgException(text,
+ id,
+ std::string("Exception found when the values ") +
+ std::string("on the command line do not meet ") +
+ std::string("the requirements of the defined ") + std::string("Args."))
+ {
+ }
+ };
+
+ /**
+ * Thrown from Arg and CmdLine when an Arg is improperly specified, e.g.
+ * same flag as another Arg, same name, etc.
+ */
+ class SpecificationException : public ArgException
+ {
+ public:
+ /**
+ * Constructor.
+ * \param text - The text of the exception.
+ * \param id - The text identifying the argument source
+ * of the exception.
+ */
+ SpecificationException(const std::string &text = "undefined exception",
+ const std::string &id = "undefined") :
+ ArgException(text,
+ id,
+ std::string("Exception found when an Arg object ") +
+ std::string("is improperly defined by the ") + std::string("developer."))
+ {
+ }
+ };
+
+ class ExitException
+ {
+ public:
+ ExitException(int estat) :
+ _estat(estat)
+ {
+ }
+
+ int getExitStatus() const
+ {
+ return _estat;
+ }
+
+ private:
+ int _estat;
+ };
} // namespace TCLAP
#endif
-