123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 |
- // C++ informative line for the emacs editor: -*- C++ -*-
- /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Copyright by The HDF Group. *
- * Copyright by the Board of Trustees of the University of Illinois. *
- * All rights reserved. *
- * *
- * This file is part of HDF5. The full HDF5 copyright notice, including *
- * terms governing use, modification, and redistribution, is contained in *
- * the COPYING file, which can be found at the root of the source code *
- * distribution tree, or in https://www.hdfgroup.org/licenses. *
- * If you do not have access to either file, you may request a copy from *
- * help@hdfgroup.org. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
- #ifndef H5Exception_H
- #define H5Exception_H
- #include <string>
- namespace H5 {
- #define H5std_string std::string
- /*! \class Exception
- \brief Exception provides wrappers of HDF5 error handling functions.
- Many classes are derived from Exception for specific HDF5 C interfaces.
- */
- class H5_DLLCPP Exception {
- public:
- // Creates an exception with a function name where the failure occurs
- // and an optional detailed message
- Exception(const H5std_string &func_name, const H5std_string &message = DEFAULT_MSG);
- // Returns a character string that describes the error specified by
- // a major error number.
- H5std_string getMajorString(hid_t err_major_id) const;
- // Returns a character string that describes the error specified by
- // a minor error number.
- H5std_string getMinorString(hid_t err_minor_id) const;
- // Returns the detailed message set at the time the exception is thrown
- H5std_string getDetailMsg() const;
- const char * getCDetailMsg() const; // C string of detailed message
- H5std_string getFuncName() const; // function name as a string object
- const char * getCFuncName() const; // function name as a char string
- // Turns on the automatic error printing.
- static void setAutoPrint(H5E_auto2_t &func, void *client_data);
- // Turns off the automatic error printing.
- static void dontPrint();
- // Retrieves the current settings for the automatic error stack
- // traversal function and its data.
- static void getAutoPrint(H5E_auto2_t &func, void **client_data);
- // Clears the error stack for the current thread.
- static void clearErrorStack();
- // Walks the error stack for the current thread, calling the
- // specified function.
- static void walkErrorStack(H5E_direction_t direction, H5E_walk2_t func, void *client_data);
- // Prints the error stack in a default manner.
- static void printErrorStack(FILE *stream = stderr, hid_t err_stack = H5E_DEFAULT);
- // Deprecated in favor of printErrorStack.
- // Removed from code. -BMR, 2017/08/11 1.8.20 and 1.10.2
- // virtual void printError(FILE* stream = NULL) const;
- // Default constructor
- Exception();
- // copy constructor
- Exception(const Exception &orig);
- // virtual Destructor
- virtual ~Exception() throw();
- protected:
- // Default value for detail_message
- static const char DEFAULT_MSG[];
- private:
- H5std_string detail_message;
- H5std_string func_name;
- };
- class H5_DLLCPP FileIException : public Exception {
- public:
- FileIException(const H5std_string &func_name, const H5std_string &message = DEFAULT_MSG);
- FileIException();
- virtual ~FileIException() throw() override;
- };
- class H5_DLLCPP GroupIException : public Exception {
- public:
- GroupIException(const H5std_string &func_name, const H5std_string &message = DEFAULT_MSG);
- GroupIException();
- virtual ~GroupIException() throw() override;
- };
- class H5_DLLCPP DataSpaceIException : public Exception {
- public:
- DataSpaceIException(const H5std_string &func_name, const H5std_string &message = DEFAULT_MSG);
- DataSpaceIException();
- virtual ~DataSpaceIException() throw() override;
- };
- class H5_DLLCPP DataTypeIException : public Exception {
- public:
- DataTypeIException(const H5std_string &func_name, const H5std_string &message = DEFAULT_MSG);
- DataTypeIException();
- virtual ~DataTypeIException() throw() override;
- };
- class H5_DLLCPP ObjHeaderIException : public Exception {
- public:
- ObjHeaderIException(const H5std_string &func_name, const H5std_string &message = DEFAULT_MSG);
- ObjHeaderIException();
- virtual ~ObjHeaderIException() throw() override;
- };
- class H5_DLLCPP PropListIException : public Exception {
- public:
- PropListIException(const H5std_string &func_name, const H5std_string &message = DEFAULT_MSG);
- PropListIException();
- virtual ~PropListIException() throw() override;
- };
- class H5_DLLCPP DataSetIException : public Exception {
- public:
- DataSetIException(const H5std_string &func_name, const H5std_string &message = DEFAULT_MSG);
- DataSetIException();
- virtual ~DataSetIException() throw() override;
- };
- class H5_DLLCPP AttributeIException : public Exception {
- public:
- AttributeIException(const H5std_string &func_name, const H5std_string &message = DEFAULT_MSG);
- AttributeIException();
- virtual ~AttributeIException() throw() override;
- };
- class H5_DLLCPP ReferenceException : public Exception {
- public:
- ReferenceException(const H5std_string &func_name, const H5std_string &message = DEFAULT_MSG);
- ReferenceException();
- virtual ~ReferenceException() throw() override;
- };
- class H5_DLLCPP LibraryIException : public Exception {
- public:
- LibraryIException(const H5std_string &func_name, const H5std_string &message = DEFAULT_MSG);
- LibraryIException();
- virtual ~LibraryIException() throw() override;
- };
- class H5_DLLCPP LocationException : public Exception {
- public:
- LocationException(const H5std_string &func_name, const H5std_string &message = DEFAULT_MSG);
- LocationException();
- virtual ~LocationException() throw() override;
- };
- class H5_DLLCPP IdComponentException : public Exception {
- public:
- IdComponentException(const H5std_string &func_name, const H5std_string &message = DEFAULT_MSG);
- IdComponentException();
- virtual ~IdComponentException() throw() override;
- }; // end of IdComponentException
- } // namespace H5
- #endif // H5Exception_H
|