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

#include <gromacs/utility/exceptions.h>

+ Inheritance diagram for gmx::GromacsException:

Description

Base class for all exception objects in Gromacs.

Public Member Functions

 GromacsException (const GromacsException &)=default
 
 GromacsException (GromacsException &&) noexcept=default
 
GromacsExceptionoperator= (const GromacsException &)=default
 
GromacsExceptionoperator= (GromacsException &&) noexcept=default
 
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

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

Constructor & Destructor Documentation

gmx::GromacsException::GromacsException ( const ExceptionInitializer details)
explicitprotected

Creates an exception object with the provided initializer/reason.

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

Member Function Documentation

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

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)

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)
inline

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
overridenoexcept

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 files: