| Introduction to HDF5 HDF5 User Guide Other HDF5 documents and links | And in this document, the 
HDF5 Reference Manual H5 H5A H5D H5E H5F H5G H5I H5P H5R H5RA H5S H5T H5Z Tools | 
The Error interface provides error handling in the form of a stack.  
The FUNC_ENTER() macro clears the error stack whenever 
an interface function is entered.  
When an error is detected, an entry is pushed onto the stack.  
As the functions unwind, additional entries are pushed onto the stack. 
The API function will return some indication that an error occurred and 
the application can print the error stack.
Certain API functions in the H5E package, such as H5Eprint(),
do not clear the error stack.  Otherwise, any function which
does not have an underscore immediately after the package name
will clear the error stack.  For instance, H5Fopen() 
clears the error stack while H5F_open() does not.
An error stack has a fixed maximum size. If this size is exceeded then the stack will be truncated and only the inner-most functions will have entries on the stack. This is expected to be a rare condition.
Each thread has its own error stack, but since multi-threading has not been added to the library yet, this package maintains a single error stack. The error stack is statically allocated to reduce the complexity of handling errors within the H5E package.
H5Eset_auto(H5E_auto_t func,
        void *client_data
    )
H5Eset_auto turns on or off automatic printing of 
        errors.  When turned on (non-null func pointer), 
        any API function which returns an error indication will 
        first call func, passing it client_data
        as an argument.
        
        When the library is first initialized the auto printing function 
	  is set to H5Eprint() (cast appropriately) and
	  client_data is the standard error stream pointer,
	  stderr.
        
        Automatic stack traversal is always in the 
        H5E_WALK_DOWNWARD direction. 
func
            client_data
            H5Eget_auto(H5E_auto_t * func,
        void **client_data
    )
H5Eget_auto returns the current settings for the 
        automatic error stack traversal function, func, 
        and its data, client_data.  Either (or both) 
        arguments may be null in which case the value is not returned.
func
            client_data
            H5Eclear(void)
H5Eclear clears the error stack for the current thread.
        
        The stack is also cleared whenever an API function is called, 
	  with certain exceptions (for instance, H5Eprint()).
        
        H5Eclear can fail if there are problems initializing 
        the library.
H5Eprint(FILE * stream)
H5Eprint prints the error stack on the specified 
        stream, stream.  
        Even if the error stack is empty, a one-line message will be printed:
        HDF5-DIAG: Error detected in thread 0.
        
        H5Eprint is a convenience function for 
        H5Ewalk() with a function that prints error messages.  
        Users are encouraged to write there own more specific error handlers.
stream
            H5Ewalk(H5E_direction_t direction,
        H5E_walk_t func,
        void * client_data
    )
H5Ewalk walks the error stack for the current thread 
        and calls the specified function for each error along the way.
        
        direction determines whether the stack is walked 
        from the inside out or the outside in.  
        A value of H5E_WALK_UPWARD means begin with the
        most specific error and end at the API; 
        a value of H5E_WALK_DOWNWARD means to start at the 
        API and end at the inner-most function where the error was first 
        detected.
        
        func will be called for each error in the error stack. 
        Its arguments will include an index number (beginning at zero 
        regardless of stack traversal direction), an error stack entry, 
        and the client_data pointer passed to 
        H5E_print.
        
        H5Ewalk can fail if there are problems initializing 
        the library.
direction
            func
            client_data
            func.
    H5Ewalk_cb(int n,
        H5E_error_t *err_desc,
        void *client_data
    )
H5Ewalk_cb is a default error stack traversal callback
        function that prints error messages to the specified output stream.
        It is not meant to be called directly but rather as an
        argument to the H5Ewalk() function.  
        This function is called also by H5Eprint().  
        Application writers are encouraged to use this function as a 
        model for their own error stack walking functions.
        
        n is a counter for how many times this function 
        has been called for this particular traversal of the stack.  
        It always begins at zero for the first error on the stack 
        (either the top or bottom error, or even both, depending on 
        the traversal direction and the size of the stack).
        
        err_desc is an error description.  It contains all the
        information about a particular error. 
        
        client_data is the same pointer that was passed as the
        client_data argument of H5Ewalk().  
        It is expected to be a file pointer (or stderr if null). 
n
            err_desc
            *client_data
            H5Eget_major(H5E_major_t n)
H5Eget_major returns a 
        constant character string that describes the error.
n
            H5Eget_minor(H5E_minor_t n)
H5Eget_minor returns a 
        constant character string that describes the error.
n
            | Introduction to HDF5 HDF5 User Guide Other HDF5 documents and links | And in this document, the 
HDF5 Reference Manual H5 H5A H5D H5E H5F H5G H5I H5P H5R H5RA H5S H5T H5Z Tools |