123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- //
- // DOMException.h
- //
- // Library: XML
- // Package: DOM
- // Module: DOM
- //
- // Definition of the DOM DOMException class.
- //
- // Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
- // and Contributors.
- //
- // SPDX-License-Identifier: BSL-1.0
- //
- #ifndef DOM_DOMException_INCLUDED
- #define DOM_DOMException_INCLUDED
- #include "Poco/XML/XML.h"
- #include "Poco/XML/XMLException.h"
- namespace Poco {
- namespace XML {
- class XML_API DOMException: public XMLException
- /// DOM operations only raise exceptions in "exceptional" circumstances, i.e.,
- /// when an operation is impossible to perform (either for logical reasons,
- /// because data is lost, or because the implementation has become unstable).
- /// In general, DOM methods return specific error values in ordinary processing
- /// situations, such as out-of-bound errors when using NodeList.
- ///
- /// Implementations should raise other exceptions under other circumstances.
- /// For example, implementations should raise an implementation-dependent exception
- /// if a null argument is passed when null was not expected.
- {
- public:
- enum
- {
- INDEX_SIZE_ERR = 1, /// index or size is negative or greater than allowed value
- DOMSTRING_SIZE_ERR, /// the specified range of text does not fit into a DOMString (not used)
- HIERARCHY_REQUEST_ERR, /// a node is inserted somewhere it doesn't belong
- WRONG_DOCUMENT_ERR, /// a node is used in a different document than the one that created it
- INVALID_CHARACTER_ERR, /// an invalid character is specified (not used)
- NO_DATA_ALLOWED_ERR, /// data is specified for a node which does not support data
- NO_MODIFICATION_ALLOWED_ERR, /// an attempt is made to modify an object where modifications are not allowed
- NOT_FOUND_ERR, /// an attempt was made to reference a node in a context where it does not exist
- NOT_SUPPORTED_ERR, /// the implementation does not support the type of object requested
- INUSE_ATTRIBUTE_ERR, /// an attempt is made to add an attribute that is already in use elsewhere
- INVALID_STATE_ERR, /// a parameter or an operation is not supported by the underlying object
- SYNTAX_ERR, /// an invalid or illegal string is specified
- INVALID_MODIFICATION_ERR, /// an attempt is made to modify the type of the underlying object
- NAMESPACE_ERR, /// an attempt is made to create or change an object in a way which is incorrect with regard to namespaces
- INVALID_ACCESS_ERR, /// an attempt is made to use an object that is not, or is no longer, usable
-
- _NUMBER_OF_MESSAGES
- };
- DOMException(unsigned short code);
- /// Creates a DOMException with the given error code.
-
- DOMException(const DOMException& exc);
- /// Creates a DOMException by copying another one.
-
- ~DOMException() noexcept;
- /// Destroys the DOMException.
-
- DOMException& operator = (const DOMException& exc);
- const char* name() const noexcept;
- /// Returns a static string describing the exception.
- const char* className() const noexcept;
- /// Returns the name of the exception class.
- Poco::Exception* clone() const;
- /// Creates an exact copy of the exception.
-
- void rethrow() const;
- /// (Re)Throws the exception.
- unsigned short code() const;
- /// Returns the DOM exception code.
- protected:
- static const std::string& message(unsigned short code);
-
- private:
- DOMException();
-
- unsigned short _code;
-
- static const std::string MESSAGES[_NUMBER_OF_MESSAGES];
- };
- //
- // inlines
- //
- inline unsigned short DOMException::code() const
- {
- return _code;
- }
- } } // namespace Poco::XML
- #endif // DOM_DOMException_INCLUDED
|