Sierra Toolkit Version of the Day
ExceptionDetail

Classes

class  sierra::ParallelThrowRegistry
 Class ParallelThrowRegistry is a registry of known parallel exceptions. For the negotiation of parallel exceptions, each parallel exception must be registered. The class serves as the registry and registrar for the exceptions. More...
class  sierra::ExParallel
 Class ExParallel implements the features of a parallel exception. It is a std::string which stores the exception description. It also provides "put to" (operator;lt&;lt&) functions for appending the description with information. More...
class  sierra::ExTemp< T >
 Template ExTemp takes a zero argument exception and makes it into a parallel throwable and put-to-able (<<) exception. This exception may be caught with either the base class T type or the template ExTemp<T> type. More...
class  sierra::runtime_user_error
 Class runtime_user_error ... More...

Typedefs

typedef ExTemp< std::exception > sierra::Exception
 Defined in
typedef ExTemp
< std::bad_exception > 
sierra::BadException
 Defined in
typedef ExTemp< std::bad_alloc > sierra::BadAlloc
 Defined in <new>
typedef ExTemp< std::bad_typeid > sierra::BadTypeid
 Defined in <typeinfo>
typedef ExTemp< std::bad_cast > sierra::BadCast
 Defined in <typeinfo>
typedef ExTemp1
< std::ios_base::failure > 
sierra::IosBaseFailure
 Defined in <ios>
typedef ExTemp1< std::logic_error > sierra::LogicError
 Defined in <stdexcept>
typedef ExTemp1
< std::domain_error > 
sierra::DomainError
 Defined in <stdexcept>
typedef ExTemp1
< std::invalid_argument > 
sierra::InvalidArgument
 Defined in <stdexcept>
typedef ExTemp1
< std::length_error > 
sierra::LengthError
 Defined in <stdexcept>
typedef ExTemp1
< std::out_of_range > 
sierra::OutOfRange
 Defined in <stdexcept>
typedef ExTemp1
< std::runtime_error > 
sierra::RuntimeError
 Defined in <stdexcept>
typedef ExTemp1< std::range_error > sierra::RangeError
 Defined in <stdexcept>
typedef ExTemp1
< std::overflow_error > 
sierra::OverflowError
 Defined in <stdexcept>
typedef ExTemp1
< std::underflow_error > 
sierra::UnderflowError
 Defined in <stdexcept>
typedef ExTemp1
< runtime_user_error > 
sierra::RuntimeUserError

Functions

void sierra::register_stl_parallel_exceptions ()
 Member function register_stl_parallel_exceptions registers the stl exceptions with the parallel exception handler.
void sierra::set_exception ()
 Function set_exception is called on a single processor when an exception is caught. The next collective communication will propogate the exception to all processors. This flavor is called when an unknown exception (...) is caught.
void sierra::set_exception (std::exception &x)
 Function set_exception is called on a single processor when an exception is caught. The next collective communication will propogate the exception to all processors.
void sierra::set_exception (ExParallel &x)
 Function set_exception is called on a single processor when an exception is caught. The next collective communication will propogate the exception to all processors.
void sierra::sierra_exception_throw ()
 Member function sierra_exception_throw is called whenever a parallel exception is constructed. This acn be used as a breakpoint in a debugger if finding the magic throw symbol is too tricky.
void sierra::throw_copy (const std::exception &x, const std::string &message)
 Function throw_copy throws a copy of the exception. The exception is located in the parallel exception registry. This exception is cloned and thrown using the parallel exception's throw_copy member function.
void sierra::parallel_throw (MPI_Comm mpi_comm)
 Function parallel_throw throws a consistant exception in parallel. parallel_throw is called after the exception has been propagated to all processors. parallel_throw will decide which exception to rethrow in parallel on all processors.

Function Documentation

void sierra::set_exception ( std::exception &  x)

Function set_exception is called on a single processor when an exception is caught. The next collective communication will propogate the exception to all processors.

Parameters:
xa std::exception reference to the base exception.

Definition at line 116 of file Exception.cpp.

void sierra::set_exception ( ExParallel &  x)

Function set_exception is called on a single processor when an exception is caught. The next collective communication will propogate the exception to all processors.

Parameters:
xa std::exception reference to the parallel exception.

Definition at line 136 of file Exception.cpp.

void sierra::throw_copy ( const std::exception &  x,
const std::string &  message 
)

Function throw_copy throws a copy of the exception. The exception is located in the parallel exception registry. This exception is cloned and thrown using the parallel exception's throw_copy member function.

If the exception cannot be located, an Exception parallel exception is thrown instead contained the message from the original exception from what().

Parameters:
xa std::exception reference to the exception to be copied and thrown.
messagea std::string const reference to a message to be appended to the exception's description.

Definition at line 91 of file Exception.cpp.

void sierra::parallel_throw ( MPI_Comm  mpi_comm)

Function parallel_throw throws a consistant exception in parallel. parallel_throw is called after the exception has been propagated to all processors. parallel_throw will decide which exception to rethrow in parallel on all processors.

Parameters:
mpi_comma MPI_Comm value of the communicator to talk over.

Definition at line 180 of file Exception.cpp.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines