xmltooling 1.6.3

exceptions.h File Reference

Licensed to the University Corporation for Advanced Internet Development, Inc. More...

#include <xmltooling/base.h>
#include <map>
#include <string>
#include <vector>
#include <iostream>

Classes

class  xmltooling::params
 Wrapper around a variable number of arguments. More...
class  xmltooling::namedparams
 Wrapper around a variable number of name/value pairs. More...

Namespaces

namespace  xmltooling
 

Public namespace of XML Tooling library.


Defines

#define DECL_XMLTOOLING_EXCEPTION(name, linkage, ns, base, desc)
 Declares a derived exception class.
#define DECL_XMLTOOLING_EXCEPTION_FACTORY(name, ns)
 Declares a factory function for an exception class.
#define REGISTER_XMLTOOLING_EXCEPTION_FACTORY(name, ns)   XMLToolingException::registerFactory(#ns"::"#name,name##Factory)
 Registers a factory for an exception class.

Functions

class xmltooling::XMLTOOL_EXCEPTIONAPI (XMLTOOL_API) XMLToolingException
 Base exception class, supports parametrized messages and XML serialization.
 xmltooling::XMLTOOLING_DOXYGEN (Exceptions related to XML parsing) class XMLTOOL_EXCEPTIONAPI(XMLTOOL_API) XMLParserException
 xmltooling::XMLTOOLING_DOXYGEN (Exceptions in basic object usage) class XMLTOOL_EXCEPTIONAPI(XMLTOOL_API) XMLObjectException
 xmltooling::XMLTOOLING_DOXYGEN (Exceptions during object marshalling) class XMLTOOL_EXCEPTIONAPI(XMLTOOL_API) MarshallingException
 xmltooling::XMLTOOLING_DOXYGEN (Exceptions due to processing of unknown element content) class XMLTOOL_EXCEPTIONAPI(XMLTOOL_API) UnknownElementException
 xmltooling::XMLTOOLING_DOXYGEN (Exceptions due to processing of unknown attributes) class XMLTOOL_EXCEPTIONAPI(XMLTOOL_API) UnknownAttributeException
 xmltooling::XMLTOOLING_DOXYGEN (Exceptions from use of an unrecognized extension/plugin) class XMLTOOL_EXCEPTIONAPI(XMLTOOL_API) UnknownExtensionException
 xmltooling::XMLTOOLING_DOXYGEN (Exceptions related to physical input/output errors) class XMLTOOL_EXCEPTIONAPI(XMLTOOL_API) IOException
 xmltooling::XMLTOOLING_DOXYGEN (Exceptions related to the XML security layer) class XMLTOOL_EXCEPTIONAPI(XMLTOOL_API) XMLSecurityException

Detailed Description

Licensed to the University Corporation for Advanced Internet Development, Inc.

(UCAID) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership.

UCAID licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Exception classes.


Define Documentation

#define DECL_XMLTOOLING_EXCEPTION (   name,
  linkage,
  ns,
  base,
  desc 
)
Value:
XMLTOOLING_DOXYGEN(desc) \
    class linkage name : public base { \
    public: \
        XMLTOOLING_DOXYGEN(Constructor) \
        name(const char* msg=nullptr, const xmltooling::params& p=xmltooling::params()) : base(msg,p) {} \
        XMLTOOLING_DOXYGEN(Constructor) \
        name(const char* msg, const xmltooling::namedparams& p) : base(msg,p) {} \
        XMLTOOLING_DOXYGEN(Constructor) \
        name(const std::string& msg, const xmltooling::params& p=xmltooling::params()) : base(msg,p) {} \
        XMLTOOLING_DOXYGEN(Constructor) \
        name(const std::string& msg, const xmltooling::namedparams& p) : base(msg,p) {} \
        virtual ~name() throw () {} \
        virtual const char* getClassName() const { return #ns"::"#name; } \
        void raise() const {throw *this;} \
    }

Declares a derived exception class.

Parameters:
namethe exception class
linkagelinkage specification for class
nsthe exception class C++ namespace
basethe base class
descdocumentation comment for class
#define DECL_XMLTOOLING_EXCEPTION_FACTORY (   name,
  ns 
)
Value:
xmltooling::XMLToolingException* name##Factory() \
    { \
        return new ns::name(); \
    }

Declares a factory function for an exception class.

Parameters:
namethe exception class name
nsthe exception class C++ namespace
#define REGISTER_XMLTOOLING_EXCEPTION_FACTORY (   name,
  ns 
)    XMLToolingException::registerFactory(#ns"::"#name,name##Factory)

Registers a factory for an exception class.

Parameters:
namethe exception class name
nsthe exception class C++ namespace