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

#include <gromacs/utility/exceptions.h>

+ Inheritance diagram for gmx::ParallelConsistencyError:
+ Collaboration diagram for gmx::ParallelConsistencyError:

Description

Exception class for use when ensuring that MPI ranks to throw in a coordinated fashion.

Generally all ranks that can throw would need to check for whether an exception has been caught, communicate whether any rank caught, then all throw one of these, with either a string that describes any exception caught on that rank, or a generic string.

Public Member Functions

 ParallelConsistencyError (const ExceptionInitializer &details)
 Creates an exception object with the provided initializer/reason. More...
 
int errorCode () const override
 Returns the error code corresponding to the exception type.
 
const char * what () const noexceptoverride
 Returns the reason string for the exception. More...
 
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...
 

Constructor & Destructor Documentation

gmx::ParallelConsistencyError::ParallelConsistencyError ( const ExceptionInitializer details)
inlineexplicit

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