Namespace hdf5::error

Classes

Singleton

class Singleton

singleton class for HDF5 error handling

This class facilitates handling of errors originating in the underlying C-API and HDF5 library. Singleton pattern assures a unique point of access to HDF5’s active error stack.

Public Functions

void auto_print(bool enable)

toggle automatic printing of error stack

By default, HDF5 prints the error stack to sterr upon the occurrence of every error. Turning this off redirects the stack to be passed out to the client using nested exceptions.

Parameters:

enable – set to true if autoprinting should be enabled, false otherwise

bool auto_print() const

indicates if automatic printing of error stack is on

H5CError extract_stack()

returns most recent error stack as Stack

Only works if auto_print is disabled. Returns a Stack (derived exception) as extracted from the HDF5 error stack of the most recent error condition(s).

After the stack is extracted it will removed from the error system.

void throw_with_stack(const std::string &message)

throws an exception, potentially nested with error stack

If auto_print is enabled, throws std::runtime_error. If auto_print is disabled, it also extracts the error stack and throws a nested exception, with the Stack object one level deeper. This function is to be used by most other functions implementing this HDF5 wrapper.

Parameters:

message – a user-supplied message for the exception

void clear_stack()

clears HDF5 error stack

Public Static Functions

static inline Singleton &instance()

reference to singleton

Use this static function to access the singleton

H5CError

class H5CError : public std::runtime_error

runtime exception containing an HDF5 error H5CError

This is an exception class specifically for passing on an HDF5 error H5CError. The error H5CError is accessible as a standard list of Descriptor objects. Upon construction, the object also generates a string containing the a printout of the H5CError.

Public Functions

inline H5CError(const std::list<Descriptor> &H5CError)

constructor

Constructs a runtime exception object containing an HDF5 error H5CError. Should only be used internally by the library.

Parameters:

H5CError – a linked list of HDF5 error descriptors

inline const char *what() const noexcept override

printout of error H5CError

Returns the pre-generated string containing a printout of the error H5CError.

inline const std::list<Descriptor> &contents() const

access to error H5CError

Returns reference to list of error descriptors.

inline bool empty() const

what it says

Convenience function

Descriptor

struct Descriptor

HDF5 error descriptor.

This is a descriptor for an error from the HDF5 error stack. It contains information about where in the underlying HDF5 library an error occurred. Such information may be passed on to the user of the library along with thrown exceptions, but only in the case that automatic error stack printing is turned off.

Public Functions

Descriptor(const H5E_error2_t &descr)

constructor

Constructs a mostly human-readable descriptor from the underlying C-API handle. Only used by the library internally.

Parameters:

descr – reference to C-API error entry

std::ostream &hdf5::error::operator<<(std::ostream &stream, const Descriptor &desc)

output operator for Descriptor

Functions