HDF5 C++ API  1.10.1
 All Classes Namespaces Functions Variables Typedefs Friends Pages
Public Member Functions | Static Public Member Functions | Static Protected Attributes | List of all members
H5::Exception Class Reference

Exception provides wrappers of HDF5 error handling functions. More...

#include <H5Exception.h>

Inheritance diagram for H5::Exception:
H5::AttributeIException H5::DataSetIException H5::DataSpaceIException H5::DataTypeIException H5::FileIException H5::GroupIException H5::IdComponentException H5::LibraryIException H5::LocationException H5::ObjHeaderIException H5::PropListIException H5::ReferenceException

Public Member Functions

 Exception (const H5std_string &func_name, const H5std_string &message=DEFAULT_MSG)
 Creates an exception with the name of the function, in which the failure occurs, and an optional detailed message. More...
 
H5std_string getMajorString (hid_t err_major_id) const
 Returns a text string that describes the error specified by a major error number. More...
 
H5std_string getMinorString (hid_t err_minor_id) const
 Returns a text string that describes the error specified by a minor error number. More...
 
H5std_string getDetailMsg () const
 Returns the detailed message set at the time the exception is thrown. More...
 
const char * getCDetailMsg () const
 Returns the detailed message set at the time the exception is thrown. More...
 
H5std_string getFuncName () const
 Returns the name of the function, where the exception is thrown. More...
 
const char * getCFuncName () const
 Returns the name of the function, where the exception is thrown. More...
 
virtual void printError (FILE *stream=NULL) const
 
 Exception ()
 Default constructor. More...
 
 Exception (const Exception &orig)
 Copy constructor: makes a copy of the original Exception object. More...
 
virtual ~Exception () throw ()
 Noop destructor. More...
 

Static Public Member Functions

static void setAutoPrint (H5E_auto2_t &func, void *client_data)
 Turns on the automatic error printing. More...
 
static void dontPrint ()
 Turns off the automatic error printing from the C library. More...
 
static void getAutoPrint (H5E_auto2_t &func, void **client_data)
 Retrieves the current settings for the automatic error stack traversal function and its data. More...
 
static void clearErrorStack ()
 Clears the error stack for the current thread. More...
 
static void walkErrorStack (H5E_direction_t direction, H5E_walk2_t func, void *client_data)
 Walks the error stack for the current thread, calling the specified function. More...
 
static void printErrorStack (FILE *stream=stderr, hid_t err_stack=H5E_DEFAULT)
 Prints the error stack in a default manner. More...
 

Static Protected Attributes

static const char DEFAULT_MSG [] = "No detailed information provided"
 

Detailed Description

Many classes are derived from Exception for specific HDF5 C interfaces.

Constructor & Destructor Documentation

H5::Exception::Exception ( const H5std_string &  func,
const H5std_string &  message = DEFAULT_MSG 
)
Parameters
func- IN: Name of the function where failure occurs
message- IN: Message on the failure
H5::Exception::Exception ( )
H5::Exception::Exception ( const Exception orig)
Parameters
orig- IN: Exception instance to copy
H5::Exception::~Exception ( )
throw (
)
virtual

Member Function Documentation

void H5::Exception::clearErrorStack ( )
static
Description
The stack is also cleared whenever a C API function is called, with certain exceptions (for instance, H5Eprint).

References Exception().

void H5::Exception::dontPrint ( )
static
void H5::Exception::getAutoPrint ( H5E_auto2_t &  func,
void **  client_data 
)
static
Parameters
func- OUT: Current setting for the function to be called upon an error condition
client_data- OUT: Current setting for the data passed to the error function

References Exception().

const char * H5::Exception::getCDetailMsg ( ) const
Returns
Text message - char pointer
const char * H5::Exception::getCFuncName ( ) const
Returns
Text message - char pointer
H5std_string H5::Exception::getDetailMsg ( ) const
H5std_string H5::Exception::getFuncName ( ) const
Returns
Text message - H5std_string
H5std_string H5::Exception::getMajorString ( hid_t  err_major) const
Parameters
err_major- IN: Major error number
Returns
Major error string
Description
In the failure case, the string "Invalid major error number" will be returned.
H5std_string H5::Exception::getMinorString ( hid_t  err_minor) const
Parameters
err_minor- IN: Minor error number
Returns
Minor error string
Description
In the failure case, the string "Invalid minor error number" will be returned.
void H5::Exception::printError ( FILE *  stream = NULL) const
virtual
void H5::Exception::printErrorStack ( FILE *  stream = stderr,
hid_t  err_stack = H5E_DEFAULT 
)
static
Parameters
stream- IN: File pointer, default to stderr
err_stack- IN: Error stack ID, default to H5E_DEFAULT(0)

References Exception().

Referenced by printError().

void H5::Exception::setAutoPrint ( H5E_auto2_t &  func,
void *  client_data 
)
static
Parameters
func- IN: Function to be called upon an error condition
client_data- IN: Data passed to the error function
Description
When the library is first initialized the auto printing function, func, is set to the C API H5Eprint and client_data is the standard error stream pointer, stderr. Automatic stack traversal is always in the H5E_WALK_DOWNWARD direction.
Users are encouraged to write their own more specific error handlers

References Exception().

void H5::Exception::walkErrorStack ( H5E_direction_t  direction,
H5E_walk2_t  func,
void *  client_data 
)
static
Parameters
direction- IN: Direction in which the error stack is to be walked
func- IN: Function to be called for each error encountered
client_data- IN: Data passed to the error function
Description
Valid values for direction include:
  • H5E_WALK_UPWARD - begin with the most specific error and end at the API
  • H5E_WALK_DOWNWARD - begin at the API and end at the inner-most function where the error was first detected
The function specified by func will be called for each error in the error stack. The H5E_walk_t prototype is as follows:
* typedef herr_t (*H5E_walk_t)(int n, H5E_error_t *err_desc, void *client_data)
* int n - Indexed position of the error in the stack; it begins at zero
* regardless of stack traversal direction
* H5E_error_t *err_desc - Pointer to a data structure describing the
* error. This structure is listed below.
* void *client_data - Pointer to client data in the format expected by
* the user-defined function.
*
Data structure to describe the error:
* typedef struct H5E_error2_t {
* hid_t cls_id; //class ID
* hid_t maj_num; //major error ID
* hid_t min_num; //minor error number
* const char *func_name; //function in which error occurred
* const char *file_name; //file in which error occurred
* unsigned line; //line in file where error occurs
* const char *desc; //optional supplied description
* } H5E_error2_t;
*

References Exception().

Member Data Documentation

const char H5::Exception::DEFAULT_MSG = "No detailed information provided"
staticprotected

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


The HDF Group Help Desk:
  Copyright by The HDF Group
and the Board of Trustees of the University of Illinois