Gromacs  2020-beta1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Member Functions | Protected Member Functions
gmx::UserInputError Class Referenceabstract

#include <gromacs/utility/exceptions.h>

+ Inheritance diagram for gmx::UserInputError:
+ Collaboration diagram for gmx::UserInputError:

Description

Exception class for user input errors.

Derived classes should be used to indicate the nature of the error instead of throwing this class directly.

Public Member Functions

const char * what () const noexceptoverride
 Returns the reason string for the exception. More...
 
virtual int errorCode () const =0
 Returns the error code corresponding to the exception type.
 
template<class InfoType >
const InfoType::value_type * getInfo () const
 Returns the value associated with given ExceptionInfo. More...
 
template<class Tag , typename T >
void setInfo (const ExceptionInfo< Tag, T > &item)
 Associates extra information with the exception. More...
 
void prependContext (const std::string &context)
 Adds context information to this exception. More...
 

Protected Member Functions

 UserInputError (const ExceptionInitializer &details)
 Creates an exception object with the provided initializer/reason. More...
 

Constructor & Destructor Documentation

gmx::UserInputError::UserInputError ( const ExceptionInitializer details)
inlineexplicitprotected

Creates an exception object with the provided initializer/reason.

Parameters
[in]detailsInitializer for the exception.
Exceptions
std::bad_allocif out of memory.

It is possible to call this constructor either with an explicit ExceptionInitializer object (useful for more complex cases), or a simple string if only a reason string needs to be provided.

Member Function Documentation

template<class InfoType >
const InfoType::value_type* gmx::GromacsException::getInfo ( ) const
inlineinherited

Returns the value associated with given ExceptionInfo.

Template Parameters
InfoTypeExceptionInfo type to get the value for.
Returns
Value set for InfoType, or nullptr if such info has not been set.

Does not throw.

void gmx::GromacsException::prependContext ( const std::string &  context)
inherited

Adds context information to this exception.

Parameters
[in]contextContext string to add.
Exceptions
std::bad_allocif out of memory.

Typical use is to add additional information higher up in the call stack using this function in a catch block and the rethrow the exception.

Todo:
The added information is currently not accessible through what(), nor through any other means except for calling printFatalErrorMessage(), formatExceptionMessageToString() or formatExceptionMessageToFile(). See ExceptionInitializer for more discussion.
template<class Tag , typename T >
void gmx::GromacsException::setInfo ( const ExceptionInfo< Tag, T > &  item)
inlineinherited

Associates extra information with the exception.

Template Parameters
TagExceptionInfo tag type.
TExceptionInfo value type.
Parameters
[in]itemExceptionInfo to associate.
Exceptions
std::bad_allocif out of memory.
unspecifiedany exception thrown by T copy construction.

If an item of this type is already associated, it is overwritten.

const char * gmx::GromacsException::what ( ) const
overridenoexceptinherited

Returns the reason string for the exception.

The return value is the string that was passed to the constructor.


The documentation for this class was generated from the following file: